2017-12-13 15 views
1

나는 오피스 플러그인을 개발 중이다.이 응용 프로그램은 시작 응용 프로그램에서 데이터 (예 : reportid, 서버에서 데이터를로드하는 데 사용되는 세션 세부 정보)를 소비해야한다. 페이지의OnlyOffice Plugin에 외부 데이터를 보내는 방법

구조처럼 나올 :

발사 페이지 (editor.aspx) - 내가 데이터에 액세스하려면 여기

부하 플러그인에 ifram - 2 - 부하 편집기 에 iframe을 1 editor.aspx에서 iframe 2 (자바 스크립트)

과 같은 queryString을 사용해 보았지만 iframe 1까지만 이동할 수 있지만 기본 aspx 페이지는 통과 할 수 없습니다. iframe 1의로드가 제어되지 않아 작동하지 않습니다.

또한 쿠키와 localStorage로 시도했지만 아무도 해결되지 않았습니다.

안내하시기 바랍니다

..

답변

1

발사 페이지 (editor.aspx) - 부하 편집기에 iframe을 1 - - ifram 2 는 플러그인을로드합니다. 가 함께 작업 할 수있는 유일한 방법은 (자바 스크립트)

편집기로 iframe을 직접 액세스를 얻을 수있는 방법은 없습니다 사용이 여기에 내가 iframe 대응에 editor.aspx의 데이터에 액세스 할 document server plugins

0

api.js 파일을 onlyoffice 서버에서 수정하여 쿼리 문자열 매개 변수를 플러그인으로 전달하면 다음과 같이 작동합니다.

function getQueryStringOfParentPage() { 
     var queryString = ""; 
     try { 
      queryString = window.parent.location.search.replace('?', ''); 
     } catch (e) { 
      console.log("getQueryStringOfParentPage::" + e.message); 
     } 
     return queryString; 
    } 


    function createIframe(config) { 
    var parentPageQueryString = getQueryStringOfParentPage(); 
     var iframe = document.createElement("iframe"); 

     iframe.src = getAppPath(config) + getAppParameters(config) + "&" + parentPageQueryString; 
     iframe.width = config.width; 
     iframe.height = config.height; 
     iframe.align = "top"; 
     iframe.frameBorder = 0; 
     iframe.name = "frameEditor"; 
     iframe.allowFullscreen = true; 
     iframe.setAttribute("allowfullscreen",""); // for IE11 
     iframe.setAttribute("onmousewheel",""); // for Safari on Mac 
     return iframe; 
    }