我还没有看到对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
答案 0 :(得分:0)
名为background.js
的文件在Chrome扩展程序中没有任何意义,您必须询问Background Pages或Event Pages
这些页面不必具有任何特定名称,可以称为fred.js
或wilma.js
- 他们的"特殊目的"只有通过Chrome扩展程序清单将它们添加到扩展程序时才会实现:
// background page
"background": {
"scripts": ["fred.js"]
},
// event page
"background": {
"scripts": ["wilma.js"],
"persistent": false
},
上述链接文档页面中明确说明了此类页面提供的功能和用例
答案 1 :(得分:0)
从docs
扩展程序是基于事件的程序,用于修改或增强Chrome浏览器的体验。事件是浏览器触发器,例如,导航到新页面,删除书签或关闭选项卡。扩展程序在其后台脚本中监视这些事件,然后按照指定的指示进行反应。