2017-04-14 75 views
1

我有問題通過使用postMessage方法傳遞HTMLIFrameElement對象從父站點到iframe(位於不同的域)。如何postmessage HTMLIFrameElement?

這是我的代碼,我已經嘗試過:

var frame = document.getElementById('myHTMLIFrameElement'); 
frame = JSON.parse(JSON.stringify(frame)); 
event.source.postMessage(frame, "*"); 

不幸的是,JSON.parse/JSON.stringify似乎並沒有被處理HTMLIFrameElement對象的正確途徑。您能否請指教如何正確傳遞HTMLIFrameElement對象?

回答

0

解析DOM元素作爲JSON不會做任何有用的據我所知。 由於postMessage()是窗口對象的一部分,因此可以嘗試使用iframe的contentWindow屬性下的框架窗口對象。

所以,你可以嘗試這樣的:

var frame = document.getElementById('myHTMLIFrameElement'); 
frame.contentWindow.postMessage("stuffYouWantToSendToTheIframe", '*'); 

然後在iframe裏面的腳本:

window.addEventListener('message', function(event) { 
    // handle message 
}); 
+0

對不起,如果我不理解的東西,但在你的例子是什麼「yourMessage」 ? – Peter

+0

您要發送給iframe的郵件,因爲您的代碼沒有顯示。 – Shilly

+0

您是否嘗試將實際的iframe DOM節點發送到第三個iframe?這可能根本不起作用。 – Shilly