在学习如何开发Chrome扩展程序时,我已经读到 background.js 无法访问标签页的DOM。所以,我认为如果没有Content Scripts,这不应该工作。但是,它仍然有效...为什么?
这是 manifest.json 文件
的manifest.json
{
"name": "Page Redder",
"version": "2.0",
"permissions": [
"activeTab"``
],
"background": {
"scripts": ["background.js"],
"persistent": false
},
"browser_action": {
"default_title": "Make this page red"
},
"manifest_version": 2
}
这是 background.js :
// Called when the user clicks on the browser action.
chrome.browserAction.onClicked.addListener(function(tab) {
// No tabs or host permissions needed!
console.log('Turning ' + tab.url + ' red!');
chrome.tabs.executeScript({
code: 'document.body.style.backgroundColor="red"'
});
});
答案 0 :(得分:0)
它的工作原理是 使用内容脚本。对chrome.tabs.executeScript()
的API调用是将code
属性中的文本字符串作为内容脚本注入当前窗口的活动选项卡,这是browserAction
按钮所在的选项卡。点击。因此,
document.body.style.backgroundColor="red"
作为内容脚本执行。