blog
blog copied to clipboard
chrome调试时,安装的扩展程序抛出的错误
现象:
在自己的程序中,有这样一条语句:
document.addEventListener('click', this.handleClick, false);
然后调试时,控制台报错:
Uncaught TypeError: Cannot read property 'nodeName' of null at HTMLDocument.onMouseClick (content.js:139)
起初疑惑,我当前调试的程序,并没有涉及到content.js
文件,点击该文件名,可以在Sources
下打开该文件,发现这文件里面的代码根本不是我项目中。打开Sources
侧边栏,找到报错的原因了,这个脚本是“迅雷下载支持”这个chrome扩展程序的。
这个脚本有这样一条语句:
document.addEventListener("click", onMouseClick, false);
我的程序和这个扩展程序都在document
上绑定了click
事件。
其实类似的问题还有很多,尤其是用chrome
的Pause on exceptions
捕捉异常时,如果你安装了很多chrome
扩展程序,很可能前若干次Pause on exceptions
是扩展程序引起的。
安装的扩展程序过多,还会导致加载页面变慢,因为需要请求扩展程序的一些静态资源(css, js),扩展程序的js
代码解析执行也会导致页面变慢,可以开个空白页面打开chrome
的network
看到加载了很多静态资源。
解决办法:
Mac OSX下,使用command + shift + N
快捷键,打开新的隐私窗口,这个隐私窗口将没有任何的扩展程序,但有时候可能需要一些扩展程序在隐私窗口,可以在扩展程序列表中进行如下设置: