Chrome扩展程序注入js

时间:2014-07-24 09:32:16

标签: javascript html5 google-chrome-extension

我想创建一个新的Chrome扩展程序,但它不起作用。 我想在网页中注入一个js文件(所有网页,不仅仅是一个。如果我在google上按下chrome图标,脚本必须执行,如果我按下facebook上的图标,它必须执行ect。)

这是background.js

chrome.browserAction.onClicked.addListener(function(tab) {

chrome.tabs.executeScript({

    null,{file: "backgrounds.js"} });
});

这是backgrounds.js

document.body.innerHTML="display div elem with style and id";

这是manifest.json

{
"name": "MyExt",
"description": "an extension,what else?",
"version": "1.0",
"permissions": [
    "activeTab"


],
"content_scripts": [
  {
      "matches": ["http://*/*"],
      "js": ["background.js"]
  }
],
"browser_action": {
    "default_title": "myExt"
},
"manifest_version": 2
}
我错了什么? 我在Windows 8.1 Update 1上使用chrome last version

1 个答案:

答案 0 :(得分:1)

您的清单错误:您应将background.js设置为后台脚本:

"background" : { "scripts" : [ "background.js" ] },

并删除"content_scripts"部分。


"activeTab"权限意味着您无需在浏览器操作点击时指定要在当前标签中注入的主机权限,因此无需其他权限。


tabId参数是可选的,你可以放弃它而不是传递null。你的调用是错误的(你在一个对象中包含两个参数)。这是正确的方法:

chrome.browserAction.onClicked.addListener(function(tab) {
  chrome.tabs.executeScript({file: "backgrounds.js"});
});