Chrome扩展程序无需点击图标即可加载脚本

时间:2016-05-26 18:45:12

标签: javascript jquery html google-chrome google-chrome-extension

大家好我想加载脚本,无论用户是否点击了我的扩展图标 这是我的扩展,它工作得很好,但我想让它工作,而不是让用户点击图标来加载脚本..

这是代码。

  {
   "name": "Injecta",
    "version": "0.0.1",
     "manifest_version": 2,
      "description": "Injecting stuff",

        "background":
         {
         "scripts": ["jquery.js","background.js"]
              },
            "browser_action": {
             "default_title": "Inject!"
              },
              "permissions": [
              "https://*/*",
               "http://*/*",
                "tabs"
                  ]
                  }

这是我的background.js

     chrome.browserAction.onClicked.addListener(function (tab) {
      chrome.tabs.executeScript({
      file: 'jquery.js'
           });
         chrome.tabs.executeScript({
            file: 'inject.js'
             });
                });

我只想让扩展程序加载页面加载的所有脚本。目前用户必须单击图标才能加载脚本..

2 个答案:

答案 0 :(得分:1)

executeScript的作用基本上是动态创建Content Script。这称为Programmatic Injection

使用内容脚本的另一种方法是specifying them in the manifest。这完全符合您的要求:内容脚本在页面加载时自动执行。

"content_scripts" : [
   {
     "js": ["jquery.js", "inject.js"],
     "matches": ["*://*/*"]
   }
],

matches参数调整为仅包含match patterns您要运行的网页。

如果您需要在注射时进行微调,请务必查看run_at参数的文档。

答案 1 :(得分:-2)

if (typeof jQuery === 'undefined') {}