Подтвердить что ты не робот

Как узнать, какую функцию javascript вызывается объектом onclick?

Как узнать, какую функцию javascript вызывается объектом onclick? Еще лучше, могу ли я узнать, в какой файл .js находится эта функция?

4b9b3361

Ответ 1

Вы можете сделать это следующим образом:

С Javascript Демо на JsFiddle

div1 = document.getElementById('div1');

alert(div1.getAttribute("onclick"));​

С jQuery Демо на JsFiddle

<div id="div1" onclick="myfun();" >​

alert($('#div1').attr('onclick'))​;

Ответ 2

Я использую Chrome Developer Tools для этого:

Event Listener Breakpoints in Google Chrome's developer tools

Установите флажок click, а затем щелкните элемент на странице, для которой вы хотите найти обработчик. Если вы используете jQuery (или аналогичную библиотеку), вам, возможно, придется пройти через свой код, прежде чем вы попадете к себе.

Ответ 3

Вы не сможете найти файл, из которого вызывается событие onclick, но myObject.onclick предоставит вам функцию, которая вызывается. И нет, вам не нужен jQuery для этого.

Что касается получения имени функции, это немного сложнее. Вы можете попробовать что-то вроде этого, возможно:

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;
    }
}

Но, честно говоря, я думаю, что немного переборщил.

Ответ 4

Это зависит от того, как привязан event.

Если вы привязываетесь к onclick без чего-то вроде jQuery, вы можете сделать это:

var obj = document.getElementById('elementId');
console.log(obj.onclick);

Ответ 5

Я делаю это с помощью этого Visual Event script, который четко подсвечивает, какие события подписаны на какие функции на каких элементах.

Чтобы найти код кода, просто используйте FireBug или аналогичные средства разработки браузера для поиска имени функции.