簡體   English   中英

Javascript跨域PostMessage無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM