0

Excel JavaScript API으로 Excel 추가 기능을 만들고 있습니다. 이 추가 기능에 버튼이 있습니다. 클릭하면 popup = window.open("https://localhost:3000/#/new/", "popup", "width=1000, height=1100")가 실행되고 브라우저 창이 팝업됩니다. 팝업에서 팝업을 다시로드 한 후 Addin이 postMessage를 더 이상 수신 할 수 없음

, 내가 추가 기능에 메시지를 보내려면 다음 코드를 사용할 수 있습니다

if ($window.opener !== null) { 
    alert($window.opener.location.href); // https://localhost/App/Home.html?et= 
    $window.opener.postMessage(msg, $window.opener.location.href);  
} 

그리고 추가 기능에, 나는 팝업에서 메시지를 수신하려면 다음 코드를 사용할 수 있습니다

function receiveMessage(event) { 
    console.log("RECEIVED: " + JSON.stringify(event.origin)); 
    if (event.origin === ...) { 
     action(event.data); 
    } 
}; 

잘 작동합니다. 추가 기능이 메시지를 수신하면 RECEIVED: "https://localhost:3000"이 표시됩니다.

그러나 내가 팝업을 새로 고침하면 cmd+r에 의해 팝업이 여전히 메시지 ($window.opener.location.href은 여전히 ​​동일 함)를 보낼 수 있지만 추가 기능은 더 이상 수신 할 수 없음을 알았습니다. RECEIVED: "https://localhost:3000"은 더 이상 표시되지 않습니다.

아무도 무슨 일이 있었는지 알고 어떻게 고칠 수 있습니까?

답변

1

window.open 대신 Office 추가 기능 대화 상자 API를 사용해 볼 수 있습니까? 추가 기능과 함께 사용하도록 설계되었습니다. 개요는 다음을 참조하십시오. Use the Dialog API

+0

고맙습니다 ... 다음 버전에서는 Dialog API를 사용해 보겠습니다. 이 버전에서는 window.open으로 최상을 만들고 싶습니다 ... – SoftTimur