Wenn ich den jQuery-Ereignis-Listener verwende, um das Nachrichtenereignis zu verarbeiten, wie unten:
$(window).on('message', function(e) {
var data = e.data; // data = undefined
});
Daten sind undefiniert! Ich bin mir sicher, dass ich Daten an das aktuelle Fenster übergeben habe. Denn wenn ich “addEventListener” verwende, geht alles gut!
Also, was ist das Problem?
Frédéric Hamidi
jQuery verarbeitet möglicherweise die Ereignisse vor data Eigenschaft, und dieser Vorgang unterstützt möglicherweise nicht richtig die message Ereignis (noch).
Versuchen Sie es mit der originalEvent Eigenschaft zum Abrufen Ihrer Daten:
$(window).on("message", function(e) {
var data = e.originalEvent.data; // Should work.
});
A +1 für dich, das hat mir gerade geholfen, damit aufzuhören, mir die Haare auszureißen.
– ceejayoz
9. August 2013 um 21:35 Uhr
Was ist der beste Weg, um auch “onmessage” im IE zu behandeln?
+1 – eine Lösung, nach der ich gesucht habe. dennoch konnte ich das Ereignis nicht mit aufheben $(window).off("message"). auf der anderen Seite, $(window).bind / $(window).unbind für mich erfolgreich ein Handler an den angehängt/abgetrennt message Veranstaltung.
– Vitali Climenco
17. Dezember 2015 um 13:25 Uhr
Einige Browser verwenden das Ereignis „onmessage“. Ich schlage eine kleine Verbesserung der vorherigen Antwort vor, um die Kompatibilität zu erhöhen:
$(window).on("message onmessage", function(e) {
var data = e.originalEvent.data;
});
12977400cookie-checkjQuery unterstützt kein Postmessage-Ereignis?yes