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