如何使用扩展程序图标切换(打开/关闭)Chrome扩展程序中的内容脚本?

时间:2016-05-25 13:20:16

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

我的Chrome扩展程序由background.jscontent.js组成,我从background.js启动。我有两个图标显示扩展程序是打开还是关闭,为此我根据this example使用background.js中的以下脚本:

var toggle = false;
chrome.browserAction.onClicked.addListener(function(tab) {
var config = {allPages: []};
toggle = !toggle;   
if(toggle){
      chrome.browserAction.setIcon({path: "on.png"});
      chrome.tabs.executeScript(null, {
            code: 'var config = ' + JSON.stringify(config)
      }, function() {
            chrome.tabs.executeScript(null, { file: "jquery.js" }, function() {
                  chrome.tabs.executeScript(null, { file: "content.js" });
            });
      });
      console.log('active ');
}
else{
     chrome.browserAction.setIcon({path: "off.png"});
     chrome.tabs.executeScript(null, {code:"console.log('not active')"});
    }
});

图标切换工作正常,但脚本执行却没有。即使图标显示扩展名已关闭,内容脚本仍然有效。 我在content.js中的代码如下:

$(document).ready(function(){
    var url = document.location.href;
    var pageModel = {
        url: url
    }; 
    config.allPages.push(pageModel);

    chrome.storage.local.set({'config': config}, function () {
        console.log('savedPageModelNew: ', config);
    });   
});

如何切换图标,还可以切换脚本?坦率地说,content.js中的剧本非常庞大,我不能把它全部放在这里。我需要的是内容脚本,当扩展程序打开时工作,并在扩展程序关闭时“暂停”。也许有人有答案?

我真的希望如此。非常感谢提前!

P.S。这也是我的manifest.json:

{
  "manifest_version": 2,

  "name": "ChromeExt",
  "version": "1.0",

  "permissions": [
      "activeTab",
      "tabs",
      "<all_urls>",
      "contextMenus",
      "storage",
      "https://*/*", "http://*/*"
  ],

  "browser_action": {
      "default_title": "Inactive.",
      "default_icon": "off.png"
  },

  "background": {
      "scripts": ["background.js"]
  },
  "content_scripts": [
      {
        "matches": ["http://*///*//", "https://*/*"],
        "css": ["mainStyles.css"]
      }
  ]

}

0 个答案:

没有答案