这是我第一次搞乱扩展,我想做的事情非常简单,但似乎无法让它发挥作用。
我只想在每次加载谷歌页面时调用警报。
在我的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')"});
每当加载页面时,是否应该执行警报?如果没有,有人可以解释为什么不是吗?
答案 0 :(得分:3)
控制台显示以下消息:
Uncaught Error: "executeScript" can only be used in extension processes. See the content scripts documentation for more details.
This post建议“Chrome扩展功能无法在内容脚本中使用”,这可能是您遇到的问题。
为了完整起见,对我有效的secondScript.js
如下:
console.log("test");
//chrome.tabs.executeScript(null, {code: "alert('test')"});
alert("test");
答案 1 :(得分:1)
Content scripts 不可以访问{strong>任何 chrome.tabs.*
API方法。
要在每个页面上显示提醒,请移除chrome.tabs.executeScript
方法,然后让secondScript.js
包含:
alert('Test');
在Chrome扩展程序中,JavaScript可以运行三种种不同的范围。了解这种分离对于编写Chrome扩展程序至关重要,请参阅this answer。