2016-05-31 66 views
0

我目前正在制作Google Chrome浏览器扩展程序,并且我希望用户能够选择它始终处于打开状态或仅在点击时激活。要做到这一点,我需要一个options.js和一个background.js文件,我有。但是,我很难让他们正确沟通。我尝试使用chrome.storage api,但它不会执行任何操作。如何根据选项获取background.js

这里是我的background.js代码:

chrome.browserAction.onClicked.addListener(function() { 
    // Send a message to the active tab 
    chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {  
     chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response)); 
    }); 
}); 

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {   
    if (changeInfo.status == 'complete') { 
     chrome.tabs.query({active: true, currentWindow: true}, function(tabs){ 
      // console.log(tabs.length); 
      chrome.tabs.sendMessage(tabs[0].id, {"message": tabs[0].url}, function(response) {}); 
     }); 
    } 
}); 

这里是我的options.js代码:

​​

如果该行为被设置为 “点击”,我只想要执行的部分是chrome.browserAction.onClicked.addListener。如果行为设置为'alwaysOn',那么我只想要执行chrome.tabs.onUpdated.addListener部分。就调试而言,这两个块都以他们应有的方式工作。我只需要知道如何根据当前选项来运行其中一个或另一个。

回答