2015-04-10 4 views
3

Есть ли способ зарегистрировать глобальный прослушиватель onclick, который будет срабатывать в любое время, когда элемент будет нажат? Необходимо также получить идентификатор этого элемента.Javascript global onclick listener

+0

'<тело OnClick = "SomeFunction()"> ' – devqon

+0

Невозможно изменить html. –

ответ

13
document.addEventListener("click", function(evnt){ 
    console.log(evnt.target.id); 
}); 
+0

Получает выполненную работу, спасибо. –

-1

вот fiddle

var everything = document.querySelectorAll("body *"); //select every element in the body 

Array.prototype.forEach.call(everything, function(el){ 
    el.onclick = function(){ 
     var id = this.id; 
     console.log(id); 
    } 
}); 
+2

это будет очень медленный вариант, если у страницы много элементов. – Girish

+0

Он также вмешивается в некоторые элементы, например экранную клавиатуру на google.com. Так определенно не хорошая версия. –

2

Вы можете получить идентификатор таким образом, с помощью JavaScript:

window.onclick = function(event) {alert(event.target.id);}
<div id="dID">div</div> 
 
<button id="bId">Button</button> 
 

 
<input type="text" id="txtId" class="txtclass" />

Смежные вопросы