[英]Javascript Cross Domain PostMessage not working
我有一個頁面可以打開子窗口(具有iframe),並且從新頁面開始,我要調用Parent函數將一些值從Child傳遞到父窗口。 子窗口代碼:
window.opener.ParentFunction(sendvalues);
由於兩者都在同一個域(example.com)中,所以對我來說很好。 現在,由於某些更改,我需要將子窗口移到新域(new.example.com)。 我也沒有收到“權限拒絕”錯誤。
為了解決這個問題,我正在使用PostMessage。
子窗口代碼:
window.parent.postMessage(sendvalues,"*");
父代碼:
var eventMethod = window.addEventListener ? "addEventListener" : "attachEvent";
var eventer = window[eventMethod];
var messageEvent = eventMethod == "attachEvent" ? "onmessage" : "message";
eventer(messageEvent, function (e) {
//for debug
alert(e.data);
ParentFunction(e.data);
}, false);
這對我沒有用,我沒有任何價值。 沒有錯誤,沒有任何反應。 該代碼未在eventer方法中執行。我沒有收到任何警報。
任何幫助是極大的贊賞。
根據新信息,您應該致電:
如果子級和iframe位於同一域中
window.parent.opener.postMessage
如果父級和子級位於同一域中,而iframe不在同一域中,則iframe可能需要調用
window.parent.postMessage
然后,子窗口應使用以下方法偵聽並將消息傳遞給父窗口:
window.opener.postMessage
不過,在這種情況下,您仍然可以嘗試window.parent.opener.postMessage-我不會為您測試所有內容;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.