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
。
我有一个 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
。