转到Twitter的登录页面,并在控制台中键入以下内容:
window.addEventListener(‘keypress’,function(e){console.log(‘hello’)},true)
(注意:如何将第三个参数设置为true,以启用事件捕获,这将导致事件首先被窗口截取,然后被子元素消耗.)
尝试按一些键.注意hello如何不输出到控制台.添加keydown或keyup的事件侦听器不会改变任何东西.
你好,大部分网站都会输出,而不是像Twitter或Gmail这样的网站.
为什么?什么是停止事件侦听器?
编辑:似乎按照预期在Firefox上工作.但不是Chrome. Chrome为什么不按预期触发事件侦听器?
编辑2:如下面的几个人推断的,console.log对于Chrome和Gmail等网站来说是一个空白的功能.这是为什么?
解决方法
因为这些网站已经具体设置(对于webkit显然):
console.log = function(){};
但是,在Chrome中,您可以通过在控制台中发出此命令来恢复原始日志()功能:
console.log = console.__proto__.log
那么你可以这样做:
window.addEventListener('keypress',function(e){console.log('hello')},true)
它应该按预期工作.