2017-04-20 61 views
0

我看到,當在Ionic 2瀏覽器的beforeunload窗口事件中調用postMessage()時,消息永遠不會到達父級。如果在unloadload事件中發佈的消息相同,則會成功收到該消息。 jQuery中:postunssage在beforeunload失敗

$(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日,即調用 window.alert(),window.confirm()和window.prompt HTML5規範的狀態( )方法可能是 在此事件中被忽略。

有什麼方法可以使用postMessagebeforeunload

回答

0

這隻發生在iOS中,似乎沒有辦法改變它。在Android中,按照預期啓動之前。