我看到在Ionic 2浏览器的postMessage()
窗口事件中调用beforeunload
时,消息永远不会到达父级。如果在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()方法可能是 在这次活动中被忽略了。
有没有办法在postMessage
中使用beforeunload
?
答案 0 :(得分:0)
这只发生在iOS中,似乎无法更改它。在Android中,beforeunload按预期触发。