“不支持Chrome.tabs ...”


15

我总是在Chrome的控制台中收到此错误。

Uncaught Error: chrome.tabs is not supported in content scripts. See the content scripts documentation for more details.

但是一切正常。

谁知道是什么原因造成的,我该如何解决?

Answers:


36

通常,原因是扩展行为不当。在我的情况下是“ MeasureIt!”。要确定哪个扩展引起了麻烦,您可以选择

逐一停用它们并进行测试

  1. 停用所有扩展
  2. 确保错误消失
  3. 一对一激活扩展
  4. 测试错误是否再次出现,请从步骤3开始重复

要么

搜索他们的源代码

  1. 打开 chrome://extensions
  2. 激活右上角的“开发人员模式”
  3. 现在您可以background.html为每个扩展打开
  4. Ctrl + F,输入“ chrome.tabs”以搜索可疑代码点
  5. 向扩展程序创建者提供反馈

8
不错的一个:)是“ Measureit!” 对我也..
埃迪

7

您不能chrome.tabs在内容脚本中使用。根据文档

...内容脚本有一些限制。他们不可以:

  • 使用chrome。* API(部分chrome.extension除外)
  • 使用扩展页面定义的变量或函数
  • 使用网页或其他内容脚本定义的变量或函数

因此,您只能chrome.tabs在后台页面或其他扩展页面中使用API。您可以使用扩展消息传递来请求使用后台页面chrome.tabs


我没有使用chrome.tabs。可以是我的Chrome扩展程序之一吗?
8k_of_power

3
是的,此错误只能由Chrome扩展程序引发(截至目前)。

5
对我来说,就是MeasureIt!导致错误。
贾斯汀·布尔

@weng如果仍然出现错误,请尝试禁用组中的某些扩展,然后查看错误是否已消除。

措施吧!也造成此错误。不必费心调试别人的代码,所以我现在只接受它。

1

这是由使用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选项卡以将结果中的目录与扩展名匹配,然后单击每个用户的权限以查看谁不了解其用法chrome.tabs。请注意,在PowerShell代码段的第4行中,我索引了“ 10”,因为这是从目录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

在此处输入图片说明

破产了

在此处输入图片说明

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.