即使在网上和本网站上阅读其他帖子后,我也无法使用postMessage。
我有一个使用var abc_iframe = document.createElement('iframe')生成的iframe。根据我的理解,我想要附加一个事件监听器来监听iframe中的消息。 我试过了:
1. abc_iframe.addEventListener("message", function(e){ console.log(e.data); }, false);
2. document.frames['id_iframe'].addEventListener("message", function(e){ console.log(e.data); }, false);
(id_iframe right here being the id of the iframe)
3. WinJS.Application.addEventListener("message", function(e){ console.log(e.data); }, false);
这些都没有奏效。 我正在使用
从iframe中发送postMessage1. parent.postMessage("message", "ms-appx://" + document.location.host);
2. window.parent.postMessage("message", "ms-appx://" + document.location.host);
iframe内容托管在另一个域(非本地)上。
答案 0 :(得分:1)
您需要附加到窗口对象,而不是iframe,才能从iframe接收消息。
window.addEventListener(function(e) {}));
在您发送的邮件中,您应该包含允许父母识别发送邮件的iframe的信息,因为所有窗口的所有邮件都将由此事件处理程序处理。
另请注意,addEventListener仅适用于某些浏览器。较旧的IE版本使用attachEvent。