我需要在Document
级别观看儿童事件,但是如果儿童使用方法stopPropagation()
停止传播,我无法听到儿童发生的这些事件。如何在儿童停止传播时聆听儿童事件
有人可以知道更好的方法来做到这一点吗?
编辑:现在我想创建一个Chrome扩展监视DOM节点事件,但事件可以停止传播,这是不是一个很好的做法,额外的监听器添加到所有节点。以下示例将显示我的问题。
客户HTML片段
<body>
<input type="button" value="Click Me" id="b">
</body>
客户的JavaScript
var button = document.querySelector('#b');
button.addEventListener('click', function(e) {
console.log('Button has been clicked');
e.stopPropagation();
});
浏览器扩展程序内容脚本
document.addEventListener('click', function(e) {
console.log('Node(' + e.target.nodeName + ') has been clicked');
// this listener will not be invoked because event has been stopped
// propagation.
});
当问的问题在这里它始终是更好地描述你真正的问题,不只是你的尝试性解决方案的问题。这可以让人们阅读你的问题,为你提供你甚至没有意识到的解决方案。当你只描述你尝试的解决方案的问题并且没有描述真正的问题时,除了你正在尝试创建的解决方案之外,我们几乎无法做到。这被称为[XY问题](http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem),严重限制了人们可以帮助你的程度。 – jfriend00