페이지가 addin.html
입니다. 그런 다음, 두 페이지를 각각 하나의 수신기 내부 있고,비동기 통신 크로스 페이지
// listen:
function receiveMessage(event) {
document.getElementById("display").innerHTML = JSON.stringify(event.data);
}
window.addEventListener("message", receiveMessage, false);
// send:
function sendMessage() {
popup.postMessage("data", popup.location.href);
}
에 의해 서로 데이터를 전송할 수 있습니다 popup = window.open("https://localhost:3000/#/posts/editor/", "popup")
에 의해 (동일한 도메인에 필요없는) 다른 페이지 editor
팝업 수 있습니다
editor
은 ui-router
으로 구현됩니다. 페이지를로드하기 전에,
addin.html
팝업 editor
, 그것은 일부 editor
데이터 및 init
요구를 보낸다 내가 지금 구현하려는 .state('editor', {
controller: 'EditorCtrl',
resolve: { init: [ ... ] },
...
};
app.controller('EditorCtrl', ['$scope', 'init', function ($scope, init) {
...
}]
이 데이터를 해결하기 : 처음에, 그것은 페이지를로드하기 전에 init
해결 . 에서 데이터를 수신하기 전에editor
이 멈출 수 있습니다.
누구든지 수신자와 발신자 (및 다른 사람)를 수정하는 방법을 알고 있습니까?
URL 매개 변수로이 초기 데이터를 전달할 수 없습니까? –
많은 양의 데이터가있을 수 있습니다. 어떻게 그들을'window.open'에 삽입 할 수 있습니까? – SoftTimur
많은 선택권이 없습니다. 데이터가 너무 크면 서버 측 세션을 사용하여 데이터를 저장하고 검색하십시오. 또는 POST로 데이터를 전송하십시오. – estus