我看到,当在离子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发布到父母,两个网页均由同一所有者控制,但来自不同的域。
这是预期的行为吗?我看到beforeunload
中不允许alert
,但没有看到有关postMessage
的任何规则:
自2011年5月25日以来,HTML5规范指出了调用 window.alert((,window.confirm((和window.prompt((方法可能是 在此活动中被忽略。
有什么方法可以在beforeunload
中使用postMessage
?
这仅在iOS中发生,似乎没有办法更改它。在Android中,如预期的那样,将nunload解雇。