Javascript:如何成为 mouse/key 事件的第一个接收者
Javascript: How to be the very first receiver of a mouse/key event
我想在任何其他对象有机会处理它之前识别网站内的任何鼠标输入。
对此有本地解决方案吗?
为什么我需要先得到它?
该站点对某些鼠标事件使用 event.stopPropagation()
。我想在传播之前看到这些事件
备注:
- 我专门针对铬进行了分析。不需要跨浏览器支持;但我想避免 chromium hacking.
window.addEventListener ("mousedown", ...)
不起作用;它会在其他元素已经停止传播后接收事件
document.body.addEventListener ("mousedown", ...)
不起作用;它会在其他元素已经停止传播后接收事件
您可以将useCapture
(addEventListener
中的第三个参数)指定为true
:
window.addEventListener('mousedown', function(){
console.log("first")
})
window.addEventListener('mousedown', function(){
console.log("second") //should fire first
}, true)
window.addEventListener('mousedown', function(){
console.log("third")
})
我想在任何其他对象有机会处理它之前识别网站内的任何鼠标输入。
对此有本地解决方案吗?
为什么我需要先得到它?
该站点对某些鼠标事件使用 event.stopPropagation()
。我想在传播之前看到这些事件
备注:
- 我专门针对铬进行了分析。不需要跨浏览器支持;但我想避免 chromium hacking.
window.addEventListener ("mousedown", ...)
不起作用;它会在其他元素已经停止传播后接收事件document.body.addEventListener ("mousedown", ...)
不起作用;它会在其他元素已经停止传播后接收事件
您可以将useCapture
(addEventListener
中的第三个参数)指定为true
:
window.addEventListener('mousedown', function(){
console.log("first")
})
window.addEventListener('mousedown', function(){
console.log("second") //should fire first
}, true)
window.addEventListener('mousedown', function(){
console.log("third")
})