我想知道如何才能获得某些事件的事件监听器列表?
假设我使用以下代码将事件监听器添加到窗口:
window.addEventListener('click',
function() {
console.log(111);
// a lot of code ...
}, false)
但是如果我要用window.onclick看到这些监听器,它将返回null。 但是,当我点击窗口时,此事件处理程序将触发。我能用另一种方式看到这个清单吗?
答案 0 :(得分:0)
elem.onclick
属性和elem.addEventListener('click')
不相互依赖,但附加侦听器的顺序非常重要
<body>
<span> body stuff </span>
<script>
var element = document.body
element.addEventListener('click', function(){ console.log(1) })
element.onclick = function(){ console.log(2) }
element.addEventListener('click', function(){ console.log(3) })
</script>
</body>
&#13;
点击身体并获得&#39; 1 2 3&#39;
然后设置element.onclick = null
点击身体并获得&#39; 1 3&#39;
2.1。可以从脚本中为每个元素提供属性onclick
(只能分配给一个函数的侦听器,而不是数组)
2.2。定义上没有办法从脚本中看到添加了addEventListener
的事件监听器,但浏览器集成调试器将在任何断点(或任何给定时刻)显示其状态。
在Chrome 32 +中:
F12 - &gt;挑选元素&#39; (标签) - &gt;选择<body>
元素 - &gt;在正确的选择&#39; EventListeners&#39;
在其他浏览器中,您可能需要扩展程序(Dragonfly,Firebug等)
2.3。 Chrome调试器将显示当前元素及其父级的所有eventListeners(按事件名称排序),直至document
。但我不知道是否可以看到窗口事件监听器。