我总是在 Chrome 的控制台中收到此错误。
Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.
但一切正常。
谁知道这是什么原因造成的以及我该如何解决?
答案1
通常,原因是扩展程序出现问题。我的情况是“MeasureIt!”。要确定哪个扩展程序出现问题,您可以
逐个停用它们并测试
- 停用所有扩展
- 确保错误已经消失
- 逐个激活扩展
- 测试错误是否再次出现,从步骤 3 开始重复
或者
搜索他们的源代码
- 打开
chrome://extensions
- 在右上角激活“开发者模式”
- 现在你可以打开
background.html
每个扩展 - Ctrl+F,输入“chrome.tabs”搜索可疑代码点
- 向扩展程序创建者提供反馈
答案2
答案3
这是由于扩展使用了权限chrome.tabs
,但未在扩展的软件包中指定这样做而导致manifest.json
的。诀窍不仅在于找到使用 的扩展chrome.tabs
,还在于找到未声明使用 的扩展。
从更自动化的方法开始(为了便于阅读,使用多行命令):在 *nix 上:
$ find . -type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq
在 Windows 上,使用 PowerShell:
> gci -rec |? {-not $_.PSIsContainer} `
>> | sls 'chrome.tabs' `
>> | select -Unique Path `
>> |% {$_.Path.Split('\')[10] } `
>> | select -Unique
>>
然后转到chrome://extensions
选项卡以将结果中的目录与扩展名进行匹配,然后单击每个目录的权限以查看谁没有遵守其使用规定。请注意,在 PowerShell 代码片段的第 4 行,我索引了“10”,因为这是从目录到目录chrome.tabs
的路径组件数;您的系统上可能会有所不同。C:\
Extensions
就我而言,我通过在管道中添加更多段来实现完全自动化的搜索:
$ find . type f \
> | xargs grep -l chrome.tabs \
> | cut -d '/' -f 2 \
> | uniq \
> | xargs -I % find % -name 'manifest.json' \
> | xargs grep -L tabs
hipbfijinpcgfogaopmgehiegacbhmob/16.0.544_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/17.1_0/manifest.json
hipbfijinpcgfogaopmgehiegacbhmob/18.1_0/manifest.json
现在来看chrome://extensions
:
破产了。