Chrome.Tabs.ExecuteScript() 中的多个 JS 行

Multiple JS Lines in Chrome.Tabs.ExecuteScript()

我有一个 Chrome 扩展,它根据按钮切换(状态 0/1)执行一些操作。

问题是现在,它改变了颜色 Red/Blue,但还需要执行一些其他操作。我找不到引用 单独的多行脚本 或 Chrome.Tabs.ExecuteScript 中的文件的方法。我在网上找到的每个示例都只有一个命令,这对我来说毫无用处!跨行拆分不起作用。将有 FOR 循环、IF 语句和其他我想注入的复杂性。

需要采取的行动: (State=0) 红色背景,使所有 IMG 标签不可见等。 (State=1)蓝色背景,使所有IMG标签可见等

background.js

var state = 0;

function activate()
{

    if (state == 0)
    {
          chrome.tabs.executeScript({
            code: 'document.body.style.backgroundColor="red"'
          });       

        state = 1;
    }
    else
    {
          chrome.tabs.executeScript({
            code: 'document.body.style.backgroundColor="blue"'
          });       

        state = 0;
    }

}

chrome.browserAction.onClicked.addListener(activate);

用你的命令创建一个单独的文件,然后用

执行它
chrome.tabs.executeScript({
  file: 'content1.js'
});

如果需要传递参数,请参阅 this question


另一种解决方案是使用单个内容脚本并使用 Messaging 向其传递命令。

如果您的方法注册了侦听器,请确保只执行一次addListener