【发布时间】:2017-04-20 17:46:45
【问题描述】:
我看到,当在 Ionic 2 浏览器的 beforeunload 窗口事件中调用 postMessage() 时,消息永远不会到达父级。如果在unload 或load 事件中发布相同的消息,则成功接收。在 JQuery 中:
$(window).on('beforeunload', function() {
parent.postMessage('TheMessage', 'domain.com'); //NOT received by parent
});
$(window).on('unload', function() {
parent.postMessage('TheMessage', 'domain.com'); //Received by parent
});
$(window).load(function(){
parent.postMessage('TheMessage', 'domain.com'); //Received by parent
});
在这种情况下,我们从 IFrame 向父级发布,两个网页由同一所有者控制,但来自不同的域。
这是预期的行为吗?我看到了alert is not allowed in beforeunload,但没有看到关于postMessage 的任何规则:
自 2011 年 5 月 25 日起,HTML5 规范规定调用 window.alert()、window.confirm() 和 window.prompt() 方法可能是 在此事件期间被忽略。
有没有办法在beforeunload中使用postMessage?
【问题讨论】:
标签: javascript events iframe ionic2 message