JavaScript全局点击事件监听器

20
有没有一种注册全局 onclick 监听器的方法,可以在任何元素被点击时触发?同时需要获取该元素的 id。

<body onclick="somefunction()"> - devqon
无法修改 HTML。 - Bogdan Zurac
3个回答

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

“addEventListener” 有什么不好吗?可能会转换成 “window.addEventListener”。 - codepleb

3
您可以使用JavaScript这种方式获取id:

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" />


1

检查一下这段代码,我在我的实际项目中使用它来跟踪用户的行为。

document.addEventListener('click', (event)=> { 
    console.log('emitting click events');
})

document.addEventListener('dblclick',(event)=>{
    console.log('emitting double click events');
} )

document.addEventListener('contextmenu', (event)=>{
    console.log('emitting right click events');
})

document.addEventListener('mouseenter',(event)=> {
   console.log("mouse enter, hovering started")
})

document.addEventListener('mouseleave', (event)=> {
console.log("hovering finished")
})

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接