blog icon indicating copy to clipboard operation
blog copied to clipboard

chrome调试时,安装的扩展程序抛出的错误

Open mrdulin opened this issue 7 years ago • 0 comments

chrome-extension-debug-issue

现象:

在自己的程序中,有这样一条语句:

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事件。

其实类似的问题还有很多,尤其是用chromePause on exceptions捕捉异常时,如果你安装了很多chrome扩展程序,很可能前若干次Pause on exceptions是扩展程序引起的。

安装的扩展程序过多,还会导致加载页面变慢,因为需要请求扩展程序的一些静态资源(css, js),扩展程序的js代码解析执行也会导致页面变慢,可以开个空白页面打开chromenetwork看到加载了很多静态资源。

解决办法:

Mac OSX下,使用command + shift + N快捷键,打开新的隐私窗口,这个隐私窗口将没有任何的扩展程序,但有时候可能需要一些扩展程序在隐私窗口,可以在扩展程序列表中进行如下设置:

mrdulin avatar Apr 06 '17 01:04 mrdulin