Warum sind nicht meine erste Parameter übergeben, die durch ein Ereignis ausgelöst?
Ok, also ich habe eine Veranstaltung listenr so...
window.addEventListener('message', parseMessage, false);
var parseMessage = function(rawMessage) {
console.log(rawMessage.cmd);
};
Ist und dann bin ich das Ereignis ausgelöst hat wie dieses:
var event = new Event('message', {'cmd':"blerg!"});
window.dispatchEvent(event);
Das problem ist die Konsole.log in parse Nachricht ist, Abmelden nicht definiert, wenn ich erwarte, um zu log out "blerg!"
Was ich mache ich hier falsch mit den Ereignissen, wie ich gehen die 'cmd' - Nachricht über die Veranstaltung?
InformationsquelleAutor der Frage Smickie | 2013-10-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden
CustomEvent
statt vonEvent
für das erstellen von benutzerdefinierten Ereignissen.Geben Sie Ihre Daten in einem "details" - Objekt (siehe code).
Änderte ich den Namen des Ereignisses ein, weil
message
ist auch für die postMessage-API. Es hat nicht zu Problemen führen, wenn die Ausführung in Chrome, aber ich würde es nicht verwenden.Hier ist eine Anpassung für IE >= 9-Kompatibilität (mit
Dokument.createEvent()
undCustomEvent::initCustomEvent()
):InformationsquelleAutor der Antwort ComFreek
Für IE9/10 polyfill Sie können diesen code von Mozilla:
https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent
Auch hier beschrieben, aber mit falscher URL:
https://stackoverflow.com/a/22946340/1736012
InformationsquelleAutor der Antwort olefrank