Wie finde ich heraus, welche JavaScript-Funktion von einem Onclick-Ereignis eines Objekts aufgerufen wird? Noch besser, kann ich dann herausfinden, welche .js-Datei diese Funktion enthält?Wie finde ich heraus, welche JavaScript-Funktion vom onclick-Ereignis eines Objekts aufgerufen wird?
Wie finde ich heraus, welche JavaScript-Funktion vom onclick-Ereignis eines Objekts aufgerufen wird?
Antwort
Sie können tun, wie diese
Mit Javascript Demo on JsFiddle
div1 = document.getElementById('div1');
alert(div1.getAttribute("onclick"));
Mit jQuery Demo on JsFiddle
<div id="div1" onclick="myfun();" >
alert($('#div1').attr('onclick'));
Ich tue dies mit diesem Visual Event Skript, das fein säuberlich unterstreicht, welche Ereignisse durch welche Funktionen abonniert auf welchen Elementen.
Um die Quelle des Codes zu finden, verwenden Sie einfach FireBug oder ähnliche Browser-Entwickler-Tools, um den Funktionsnamen zu suchen.
Sie könnten die Datei, aus der das onclick-Ereignis aufgerufen wird, nicht finden, aber myObject.onclick
gibt Ihnen die Funktion, die aufgerufen wird. Und nein, du brauchst jQuery dafür nicht.
Soweit die Name der Funktion, das ist ein wenig komplizierter. Sie könnten so etwas versuchen, vielleicht:
var myFunc = myObject.onclick, myFuncName = "";
for(prop in window) {
if(window.hasOwnProperty(prop) && window[prop] === myFunc) {
myFuncName = prop; // myFuncName is now the name of the function. This only works if you didn't assign an anonymous function to the click handler.
break;
}
}
Aber ehrlich gesagt, ich denke, das ist ein wenig Overkill.
Das hängt davon ab, wie die event
angeschlossen ist.
Wenn Sie onclick
ohne so etwas wie jQuery sind verbindlich Sie dies tun könnte:
var obj = document.getElementById('elementId');
console.log(obj.onclick);
Ich benutze Chrome Developer Tools hierfür:
Überprüfen Sie die click
Feld und Klicken Sie dann auf das Element auf der Seite, für die Sie den Handler suchen möchten. Wenn Sie jQuery (oder eine ähnliche Bibliothek) verwenden, müssen Sie möglicherweise erst ihren Code durchlaufen, bevor Sie zu Ihrem gehören.
Ich wusste nie, dass das in Chrom existiert.Das ist großartig und beantwortet die Frage für mich. – circlecube
Vielen Dank, dass Sie uns über dieses Tool informiert haben, aber in welcher Weise diese Methode nützlich ist, wenn sie mich auf Codezeilen aus der jQuery-Bibliothek verweist. Wie kann ich wissen, welcher Teil des MY-Codes läuft? –
@whitelettersandblankspaces Der einzige Weg, den ich derzeit kenne, besteht darin, den Code von jQuery zu durchlaufen, bis Sie zu Ihrem Code gelangen. – benekastah
- 1. Wie finde ich heraus, welche JAR-Anwendung nicht verwendet wird?
- 2. Wie finde ich heraus, wer eine Methode aufgerufen hat?
- 3. Wie finde ich heraus, welche Version von TinyMCE ich verwende?
- 4. Wie finde ich heraus, welche Version von reportlab ich verwende?
- 5. Wie finde ich heraus, welche Play-Version ich verwende?
- 6. Wie finde ich heraus, welche Zeichentaste gedrückt wurde?
- 7. Wie finde ich heraus, welche JavaScript-Ereignisse ausgelöst wurden?
- 8. Wie finde ich heraus, welche Bibliotheken eine Windows-Exe verwendet?
- 9. Wie finde ich heraus, welche Art von Dokument in IE
- 10. Wie finde ich heraus, welche settings.xml-Datei maven verwendet
- 11. Wie finde ich heraus, welche Visual Studio-Erweiterung Speicherlecks verursacht?
- 12. Wie finde ich heraus, welche Klasse einen Fehler druckt?
- 13. Wie finde ich heraus, welche Funktionen beim Drücken einer Taste in Chrome Console aufgerufen werden?
- 14. Wie finde ich heraus, welche Gruppe ein bestimmter Benutzer hat?
- 15. Wie finde ich heraus, welche JDK-Version Eclipse verwendet?
- 16. Wie finde ich heraus, welche Javascript-Bibliothek besitzt $
- 17. Wie finde ich heraus, welche Version von Sybase läuft?
- 18. Wie finde ich heraus, welche Sprachen in EnterpriseDB geladen werden?
- 19. Wie finde ich heraus, welche DLLs eine ausführbare Datei lädt?
- 20. Wie finde ich heraus, welche Container ein bestimmtes Volumen haben?
- 21. Wie finde ich heraus, welche Version von mod_perl installiert ist?
- 22. Wie finde ich heraus, welche Nachrichten ein Objekt versteht?
- 23. Wie finde ich den aktuellen Überlaufprüfkontext heraus?
- 24. Finde heraus, ob/welche BLAS-Bibliothek von Numpy benutzt wird
- 25. Wie finde ich heraus, wo eine Ruby-Methode deklariert wird?
- 26. Wie finde ich heraus, dass meine Seite gekratzt wird?
- 27. Wie finde ich heraus, ob eine Klasse instanziiert wurde?
- 28. Wie finde ich den Dateinamen eines Perl-Pakets heraus?
- 29. Wie finde ich den Modus (Berechtigungen) eines Verzeichnisses heraus?
- 30. Wie finde ich heraus, welche Befehle in einer MySQL-Datenbank innerhalb eines bestimmten Zeitraums ausgeführt werden?
Um klar zu sein, haben Sie ein DOM-Objekt und Sie möchten wissen, was es onclick? Haben Sie 'someObject.onclick' oder' someObject.getAttribute ("onclick") '? Sie können nicht wissen, aus welcher Datei es stammt, da JS-Code nichts darüber weiß, aus welcher Datei er stammt. – apsillers
mögliches Duplikat von [Wie kann überprüft werden, ob JavaScript-Ereignis-Listener/Handler an ein Element/Dokument angehängt sind?] (Http://stackoverflow.com/questions/2382994/how-to-check-if-any-javascript-event- listeners-handlers-angefügt-an-ein-element-d) –
@Diodeus: diese Frage ist anders - es geht darum, jQuery zu verwenden, um die gebundenen Ereignisse zu erhalten, während das OP stattdessen nach einem Browser-Devtool sucht. –