最近,当我尝试在 Chrome 浏览器中登录 Discord 时,登录页面完全是空白的。
如果我以隐身模式打开页面,页面会正常加载,所以我知道这肯定与我的某个扩展程序发生冲突。但我怎么知道是哪一个呢?
有些人可能会建议:“打开开发者工具控制台,并查找错误。”
我尝试过,但看到以下错误:
Uncaught TypeError: Cannot read property 'innerText' of null
at HTMLDocument.cookie (<anonymous>:17:58)
at Object.<anonymous> (3833ed3856c1196040a1.js:41)
at r (1cb060148fc2158935f3.js:1)
at Object.<anonymous> (3833ed3856c1196040a1.js:32)
[...]
然后,我打开了堆栈跟踪中的各种 Javascript 文件,但没有一个文件显示哪个扩展存在冲突。(它们只是 Discord 自己的脚本和“VM...”脚本)
对于这种情况(很难从错误/堆栈跟踪中识别问题扩展),识别它的最有效方法是什么?
答案1
我找到了一种非常有效的方法:
- 安装此扩展管理器扩展:https://chrome.google.com/webstore/detail/extensions-manager-aka-sw/lpleipinonnoibneeejgjnoeekmbopbc
- 单击扩展图标以打开弹出窗口。
- 右键单击弹出窗口顶部的“已启用”类别链接,然后按“在新选项卡中打开链接”。 (这样“弹出窗口”面板就会保持打开状态)
- 禁用该列表中的前半部分扩展。不要刷新此列表的页面!(您需要保留该列表,以便以后可以重新启用没有问题的扩展)
- 刷新原始网站,看看问题是否仍然出现。(即。二分查找)
A)如果没有,问题扩展就位于刚刚禁用的那一半,因此重新启用刚刚禁用的一半扩展,然后重新执行步骤 5。B
)如果有,问题扩展一定位于仍然启用的那一半,因此禁用其中一半,然后重新执行步骤 5。 - 一旦您将列表缩小到单个条目,您就找到了问题扩展。您现在可以重新启用在搜索过程中禁用的所有其他扩展。(由于您保持列表页面打开,因此这很容易,因为它只显示开始时启用的扩展列表)
答案2
您可以通过浏览器开发者窗口中可见的扩展程序 ID 来识别导致网页中断的大多数扩展程序。例如:
- 我发现我的浏览器中的 JavaScript 运行不正常
- 我在网站上打开 devtools (f12),发现有此行为
- 我注意到了错误:
- 我复制了id:cmkdbmfndkfgebldhnkbfhlneefdaaip
- 我将其输入到谷歌中:
这里描述了另一种方法:如何通过 ID 在 Chrome 网上应用店中查找 Chrome 扩展程序