chrome选项卡的Execute Script方法是否涉及内容脚本,因为后台无法访问DOM?

时间:2016-11-30 16:48:25

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

在学习如何开发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"'
  });
});

1 个答案:

答案 0 :(得分:0)

它的工作原理是 使用内容脚本。对chrome.tabs.executeScript()的API调用是将code属性中的文本字符串作为内容脚本注入当前窗口的活动选项卡,这是browserAction按钮所在的选项卡。点击。因此,

document.body.style.backgroundColor="red"

作为内容脚本执行。