0

这是我第一次搞乱扩展,我想做的很简单,但我似乎无法让它工作。

我只想在每次加载谷歌页面时调用一个警报。

在我的 manifest.json 我有:

{
"name": "Bypass shib",
"version": "1.0",
"content_scripts": [
  {
  "matches": ["http://www.google.com/*"],
  "js": ["secondScript.js"]
}
],
"manifest_version": 2
}

好的,现在在我的 secondScript.js 中我有:

chrome.tabs.executeScript(null, {code: "alert('test')"});

这不应该在加载页面时执行警报吗?如果没有,有人可以解释为什么不是吗?

4

2 回答 2

4

控制台显示以下消息:

Uncaught Error: "executeScript" can only be used in extension processes.
See the content scripts documentation for more details.

这篇文章建议“Chrome 扩展功能不能在内容脚本中使用”,这可能是您遇到的问题。

为了完整secondScript.js起见,对我有用的方法如下:

console.log("test");
//chrome.tabs.executeScript(null, {code: "alert('test')"});
alert("test");
于 2012-04-08T07:55:32.050 回答
1

内容脚本无权访问任何APIchrome.tabs.*方法。

要在每个页面上显示警报,请删除该chrome.tabs.executeScript方法,并让您secondScript.js只包含:

alert('Test');

在 Chrome 扩展程序中,JavaScript 可以在三种不同的范围内运行。理解这种分离对于编写 Chrome 扩展是必不可少的,请参阅这个答案

于 2012-04-08T10:07:36.833 回答