2017-08-23 1 views
2

Basierend auf this question, ich habe eine benutzerdefinierte anonyme Ereignis-Listener wie folgt erstellt:Anonyme Ereignisse über die Chrome/JavaScript-Konsole auslösen?

function init() { 
    console.log("Initiating widgets"); 
} 

window.addEventListener("widgetInit", init()); 

ich es $(window).trigger('widgetInit'); von Code aufrufen können, aber wenn ich einfügen, dass in die Konsole es einfach das Fenster-Objekt zurückgibt.

Gibt es eine Möglichkeit, das Ereignis über die Konsole zu simulieren, ohne den Code zu ändern?

+3

Sie wollten 'window.addEventListener (" widgetInit ", init);'. Oder mit jQuery: '$ (window) .on (" widgetInit ", init);' damit es tatsächlich funktioniert. – Bergi

+0

Auch mit dem Entfernen der Klammer musste ich den Trigger zu dispatchEvent ändern, wie in @Michael Horns Antwort zu sehen ist. –

Antwort

4

Vielleicht könnten Sie versuchen, die native DOM-Methode:

window.dispatchEvent(new Event('widgetInit')); 
+0

'window.dispatchEvent (neues Ereignis (" widgetInit "));' funktioniert –

+1

Mein Fehler, ich habe meine Antwort bearbeitet –

1

Ihre Zuhörer, denke ich, sollte:

window.addEventListener("widgetInit", init); 

So init ohne die Klammer ...

Wenn Sie ein jQuery-Element durch Eingabe direkt in der Konsole als Ziel auswählen, wird dieses Element immer zurückgegeben. So funktioniert der Trigger ... Aber ich denke, Ihr Hörer funktioniert nicht ...

+0

Auch mit dem Entfernen der Klammer (danke), musste ich den Trigger zu 'dispatchEvent' ändern, wie in gesehen @Michael Horns Antwort. –

Verwandte Themen