Javascript 页面刷新期间通过数组的Chrome扩展循环

Javascript 页面刷新期间通过数组的Chrome扩展循环,javascript,jquery,google-chrome,google-chrome-extension,Javascript,Jquery,Google Chrome,Google Chrome Extension,我有一个页面,每次点击一个按钮都会重新加载,这样脚本就会停止。但是,即使在页面重新加载之后,我也需要脚本在数组中循环。我应该直接在background.js文件中运行脚本,而不是执行另一个脚本吗?如果是的话,我不知道怎么做。我最初尝试使用带有webview的Chrome应用程序,但找不到单击按钮的方法 <div id="button">click here</div> //需要继续运行的脚本 var candy = ["twix", "taffy"]; for(var

我有一个页面,每次点击一个按钮都会重新加载,这样脚本就会停止。但是,即使在页面重新加载之后,我也需要脚本在数组中循环。我应该直接在background.js文件中运行脚本,而不是执行另一个脚本吗?如果是的话,我不知道怎么做。我最初尝试使用带有webview的Chrome应用程序,但找不到单击按钮的方法

<div id="button">click here</div>
//需要继续运行的脚本

var candy = ["twix", "taffy"];
for(var i = 0; i < candy.length; i++) {
  $("#button").click();
  setTimeout(function(){ console.log("candy") }, 3000);
}
var candy=[“twix”,“taffy”];
对于(变量i=0;i

我有设置时间,在进入下一个数组时间之前为页面提供完成重新加载的时间。

您可以将一条消息从内容脚本发送到后台脚本以进行计算。也可以在后台脚本中进行冷却,以打击垃圾邮件。然后,如果需要,可以使用消息将结果发送回内容脚本


检查一下:

什么是
SetTimeout
?是不是在
setTimeout
上有一个包装器?注意:如果这是
setTimeout
的话,它不会暂停循环,如果你认为会发生这种情况。。。你会在3秒钟后两次登录到控制台,这是一个输入错误。在继续下一个itme之前,我必须先暂停setTimeout。正如我所说的,如果它是
setTimeout
,那么它不会像你想的那样-setTimeout是异步的,所以不会为你“暂停”javascript。我想这是一种方法。谢谢
var toggle = false;
chrome.browserAction.onClicked.addListener(function(tab) {
  toggle = !toggle;
  if(toggle){
    chrome.browserAction.setIcon({path: "on.png", tabId:tab.id});
    chrome.tabs.executeScript(tab.id, {file:"on.js"});
  }
  else{
    chrome.browserAction.setIcon({path: "off.png", tabId:tab.id});
    chrome.tabs.executeScript(tab.id, {file:"off.js"});
  }
});
var candy = ["twix", "taffy"];
for(var i = 0; i < candy.length; i++) {
  $("#button").click();
  setTimeout(function(){ console.log("candy") }, 3000);
}