chrome扩展名上background.js的目的是什么?

时间:2016-01-11 00:43:00

标签: javascript jquery html

我还没有看到对background.js或background.html的使用。这似乎只是一个中间人。我可以使用popup.html / popup.js中的以下代码轻松地与我的所有内容脚本进行通信(浏览器操作):

if (e.target.id === "blue"){
   chrome.tabs.query({active: true, currentWindow: true}, function(tabs) {
     var activeTab = tabs[0];
    chrome.tabs.sendMessage(activeTab.id, {"message": "blue" });
});
}

然后在我的content.js:

chrome.runtime.onMessage.addListener(function(request, sender, sendResponse) {

 if( request.message === "blue" ) {
     document.body.style.backgroundColor="blue";
     console.log("Content: Changing to blue");
 }

 if( request.message === "black" ) {
     document.body.style.backgroundColor="black";
}

 });

P.S希望这可以帮助别人,我已经有了工作延期! :D

2 个答案:

答案 0 :(得分:0)

名为background.js的文件在Chrome扩展程序中没有任何意义,您必须询问Background PagesEvent Pages

这些页面不必具有任何特定名称,可以称为fred.jswilma.js - 他们的"特殊目的"只有通过Chrome扩展程序清单将它们添加到扩展程序时才会实现:

// background page
"background": {
  "scripts": ["fred.js"]
},
// event page
"background": {
  "scripts": ["wilma.js"],
  "persistent": false
},

上述链接文档页面中明确说明了此类页面提供的功能和用例

答案 1 :(得分:0)

docs

扩展程序是基于事件的程序,用于修改或增强Chrome浏览器的体验。事件是浏览器触发器,例如,导航到新页面,删除书签或关闭选项卡。扩展程序在其后台脚本中监视这些事件,然后按照指定的指示进行反应。