Ich möchte alle Ereignisse sehen, die von einem Eingabefeld ausgelöst werden , wenn ein Benutzer damit interagiert. Dies beinhaltet Dinge wie:
- Klicken Sie darauf.
- Klicken Sie darauf.
- Tabbing hinein.
- Tabbing weg von ihm.
- Ctrl+ Cund Ctrl+ Vauf der Tastatur.
- Rechtsklick -> Einfügen.
- Rechtsklick -> Ausschneiden.
- Rechtsklick -> Kopieren.
- Ziehen und Ablegen von Text aus einer anderen Anwendung.
- Ändern mit Javascript.
- Ändern Sie es mit einem Debug-Tool wie Firebug.
Ich möchte es mit anzeigen console.log
. Ist dies in Javascript / jQuery möglich und wenn ja, wie mache ich das?
javascript
jquery
events
dom-events
Daniel T.
quelle
quelle
Antworten:
Dadurch erhalten Sie viele (aber nicht alle) Informationen darüber, ob ein Ereignis ausgelöst wird. Abgesehen davon, dass Sie es manuell so codieren, fällt mir keine andere Möglichkeit ein, dies zu tun.
quelle
function
haben und auf die gleiche Weise :).blur
zu Ihrer Ereignisliste hinzufügen .Ich habe keine Ahnung, warum niemand dies verwendet ... (vielleicht weil es nur eine Webkit-Sache ist)
Konsole öffnen:
quelle
monitorEvents
gibt keine relevanten Informationen dazu, außerdem vermute ich sehr, dass dies sehrmonitorEvents($0, 'mouse');
alle Ereignisse eines inspizierten Elements (Rechtsklick> "Inspizieren") protokollieren können. ( briangrinstead.com/blog/chrome-developer-tools-monitorevents )Es gibt eine nette generische Möglichkeit, die .data-Sammlung ('events') zu verwenden:
Dies protokolliert jedes Ereignis, das bereits von jQuery an das Element gebunden wurde, sobald dieses bestimmte Ereignis ausgelöst wird. Dieser Code war für mich viele Male verdammt hilfreich.
Übrigens: Wenn Sie sehen möchten, dass jedes mögliche Ereignis auf ein Objekt ausgelöst wird, verwenden Sie firebug: Klicken Sie einfach mit der rechten Maustaste auf das DOM-Element in der HTML-Registerkarte und aktivieren Sie "Ereignisse protokollieren". Jedes Ereignis wird dann in der Konsole protokolliert (dies ist manchmal etwas ärgerlich, da jede Mausbewegung protokolliert wird ...).
quelle
quelle
Ich weiß, dass die Antwort darauf bereits akzeptiert wurde, aber ich denke, es gibt einen etwas zuverlässigeren Weg, bei dem Sie den Namen des Ereignisses nicht unbedingt vorher kennen müssen. Dies funktioniert meines Wissens nur für native Ereignisse, nicht für benutzerdefinierte Ereignisse, die von Plugins erstellt wurden. Ich habe mich dafür entschieden, die Verwendung von jQuery wegzulassen, um die Dinge ein wenig zu vereinfachen.
Ich hoffe das hilft jedem, der das liest.
BEARBEITEN
Ich habe hier eine andere Frage gesehen , die ähnlich war. Ein weiterer Vorschlag wäre, Folgendes zu tun:
quelle
Alter Faden, ich weiß. Ich brauchte auch etwas, um Ereignisse zu überwachen und schrieb diese sehr praktische (ausgezeichnete) Lösung. Sie können alle Ereignisse mit diesem Hook überwachen (in der Windows-Programmierung wird dies als Hook bezeichnet). Dieser Hook wirkt sich nicht auf den Betrieb Ihrer Software / Ihres Programms aus.
Im Konsolenprotokoll sehen Sie ungefähr Folgendes:
Erklärung dessen, was Sie sehen:
Im Konsolenprotokoll werden alle von Ihnen ausgewählten Ereignisse angezeigt (siehe unten "Verwendung"). ) und der Objekttyp, Klassenname (n), ID, <: Name der Funktion>, <: Ereignisname> angezeigt. Die Formatierung der Objekte ist CSS-ähnlich.
Wenn Sie auf eine Schaltfläche oder ein anderes gebundenes Ereignis klicken, wird es im Konsolenprotokoll angezeigt.
Der Code, den ich geschrieben habe:
Beispiele zur Verwendung:
Überwachen Sie alle Ereignisse:
Überwachen Sie nur alle Trigger:
Überwachen Sie nur alle EIN-Ereignisse:
Überwachen Sie nur alle AUS-Entbindungen:
Anmerkungen / Hinweis:
Ich hoffe es hilft! ;-);
quelle
https://github.com/robertleeplummerjr/wiretap.js
quelle
HTMLElement.prototype.addEventListener
und sollte wahrscheinlich nicht in der Produktion verwendet werden, aber es war bereits eine große Hilfe für mich beim Debuggen.Fügen Sie dies einfach der Seite hinzu und keine anderen Sorgen erledigen die Ruhe für Sie:
Sie können auch console.log ('Eingabeereignis:' + e.type) verwenden, um dies zu vereinfachen.
quelle
function
haben und auf die gleiche Weise :).$('input').data('events')
und es wird undefiniert zurückgegeben.Schritt 1: Überprüfen Sie die
events
für eineHTML element
auf derdeveloper console
:SCHRITT 2: Hören Sie sich das an, was
events
wir erfassen möchten:Viel Glück...
quelle
Ich habe kürzlich dieses Snippet aus einem vorhandenen SO-Beitrag gefunden und geändert, den ich nicht wieder finden konnte, aber ich fand es sehr nützlich
quelle
Dies verwendet ein wenig ES6 für die Schönheit, kann aber auch für ältere Browser leicht übersetzt werden. In der Funktion, die an die Ereignis-Listener angehängt ist, wird derzeit nur protokolliert, welche Art von Ereignis aufgetreten ist. Hier können Sie jedoch zusätzliche Informationen ausdrucken oder mithilfe eines Schaltergehäuses
e.type
nur Informationen zu bestimmten Ereignissen druckenquelle
Hier ist eine nicht abfragbare Möglichkeit, Ereignisse in der Konsole mit Ihrem Code und ohne die Verwendung von monitorEvents () zu überwachen, da dies nur in der Chrome Developer Console funktioniert. Sie können auch festlegen, dass bestimmte Ereignisse nicht überwacht werden, indem Sie das Array no_watch bearbeiten.
quelle