Ich sehe, dass, wenn postMessage()
innerhalb eines beforeunload
Fensterereignisses in einem Ionic 2-Browser aufgerufen wird, die Nachricht nie das übergeordnete Element erreicht. Wenn dieselbe Nachricht im Ereignis unload
oder load
gebucht wird, wird sie erfolgreich empfangen. In JQuery:postMessage in beforeunload schlägt fehl
$(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
});
In diesem Fall sind wir Entsendung von einem IFrame auf die Eltern und beide Seiten sind vom gleichen Eigentümer kontrolliert, sondern kommen aus verschiedenen Bereichen.
Ist dies das erwartete Verhalten? Ich sehe, dass alert
is not allowed in beforeunload
aber sehen keine Regeln über postMessage
:
Seit dem 25. Mai 2011 die HTML5-Spezifikation besagt, dass zu window.alert() aufruft, window.confirm() und window.prompt () Methoden können während dieses Ereignisses ignoriert werden.
Gibt es eine Möglichkeit postMessage
in beforeunload
zu verwenden?