Javascript 背景页面的Chrome扩展问题
当用户单击浏览器操作时,我试图对网页执行JavaScript代码。它工作得很好,当我试图把它放在背景页上时,它就搞砸了。 我希望特定的代码执行一次,当再次单击图标时,运行不同的代码。我试图做到以下几点Javascript 背景页面的Chrome扩展问题,javascript,google-chrome,google-chrome-extension,Javascript,Google Chrome,Google Chrome Extension,当用户单击浏览器操作时,我试图对网页执行JavaScript代码。它工作得很好,当我试图把它放在背景页上时,它就搞砸了。 我希望特定的代码执行一次,当再次单击图标时,运行不同的代码。我试图做到以下几点 //Background page <Script> function goNow() { var live = 2; chrome.tabs.executeScript(null,
//Background page
<Script>
function goNow() {
var live = 2;
chrome.tabs.executeScript(null,
{code:"Code"});
}
function Shutdown(){
var live = 1;
chrome.tabs.executeScript(null,
{code:"Code"});
}
function runLive(live){
if (live==1) {goNow()}
else {Shutdown()}
}
chrome.browserAction.onClicked.addListener(runLive)
</script>
//背景页
函数goNow(){
var-live=2;
chrome.tabs.executeScript(null,
{代码:“代码”});
}
函数Shutdown(){
var-live=1;
chrome.tabs.executeScript(null,
{代码:“代码”});
}
函数runLive(live){
如果(live==1){goNow()}
else{Shutdown()}
}
chrome.browserAction.onClicked.addListener(runLive)
当然,“代码”是一种JavaScript代码,当注入页面时效果非常好。chrome.browserAction.onClicked.addListener将tab对象传递给回调函数,您不能只在那里传递自己的参数
- 在函数中声明变量(通过使用
关键字)使其仅在此函数中可用var
//global variable
var live = 1;
function goNow() {
live = 2;
chrome.tabs.executeScript(null, {code:"Code"});
}
function Shutdown(){
live = 1;
chrome.tabs.executeScript(null, {code:"Code"});
}
function runLive(tab){
if(live==1){goNow()}
else{Shutdown()}
}
chrome.browserAction.onClicked.addListener(runLive);
很有效,谢谢。我仍然不明白为什么在runLive函数中使用“tab”。@Ariel如果您查看API,它会列出哪些参数将发送到此回调函数。您可以随意调用此参数,但它将包含一个选项卡。如果要回滚某人的合法编辑,至少要修复拼写和语法错误。