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

时间:2015-04-26 21:24:42

标签: google-chrome google-chrome-extension

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

现在的问题是,它改变了红色/蓝色,但还有一些其他需要发生的动作。我找不到在Chrome.Tabs.ExecuteScript中引用单独的多行脚本或文件的方法。我在网上找到的每个例子都只有一个命令,对我来说没用!跨线分割不起作用。将有FOR循环,IF语句和我想要注入的其他复杂性。

需要采取的措施: (状态= 0)红色背景,使所有IMG标签不可见等。 (状态= 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);

1 个答案:

答案 0 :(得分:3)

使用您的命令创建单独的文件,并使用

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

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

替代解决方案是使用单个内容脚本并使用Messaging将命令传递给它。

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