转到 Twitter 的登录页面并在控制台中输入以下内容:
window.addEventListener('keypress', function(e){console.log('hello')}, true)
(注意:第三个参数如何设置为true
启用事件捕获。这会导致事件首先被窗口拦截,然后被子元素消费。)
尝试按一些键。请注意如何hello
不输出到控制台。添加事件侦听器keydown
或keyup
不更改任何内容。
hello
将在大多数网站上获得输出,但不会在 Twitter 或 Gmail 等网站上获得输出。
为什么?是什么阻止了事件监听器?
编辑:似乎在 Firefox 上按预期工作。但不是铬。为什么 Chrome 没有按预期触发事件侦听器?
编辑 2:正如下面的一些人所推断的,console.log
对于 Twitter 和 Gmail 等网站,Chrome 上是一个空功能。这是为什么?