我遇到问题是使用HTMLIFrameElement
方法将postMessage
对象从父网站传递到iframe(位于不同的域中)。
这是我已经尝试过的代码:
var frame = document.getElementById('myHTMLIFrameElement');
frame = JSON.parse(JSON.stringify(frame));
event.source.postMessage(frame, "*");
不幸的是,JSON.parse
/ JSON.stringify
似乎不是处理HTMLIFrameElement
对象的正确方法。你能否告诉我如何正确地通过HTMLIFrameElement
对象?
答案 0 :(得分:0)
根据我所知,将DOM元素解析为JSON并没有做任何有用的事情。
由于postMessage()
是窗口对象的一部分,因此您可以尝试使用框架的窗口对象,该窗口对象位于iframe的contentWindow
属性下。
所以你可以尝试类似的东西:
var frame = document.getElementById('myHTMLIFrameElement');
frame.contentWindow.postMessage( "stuffYouWantToSendToTheIframe", '*' );
然后在iframe内的脚本中:
window.addEventListener('message', function( event ) {
// handle message
});