首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Chrome扩展在页面刷新期间循环数组

Chrome扩展在页面刷新期间循环数组
EN

Stack Overflow用户
提问于 2018-05-30 08:12:13
回答 1查看 503关注 0票数 0

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

代码语言:javascript
复制
<div id="button">click here</div>

//清单

代码语言:javascript
复制
{
"manifest_version": 2,

"name": "CycleThru",
"version": "1.0",
"offline_enabled": true,
"icons": { "16": "on.png",
           "48": "on.png",
          "128": "on.png" },
 "background": {
    "scripts": ["background.js"],
    "persistent": false
  },
   "permissions": [
    "activeTab"
  ],
"content_scripts": [
{
"matches": ["<all_urls>"],
"css": ["on.css"],
"js": ["jquery.min.js"]
} ],
 "browser_action": {
    "default_icon": "off.png"
  }
}

//后台JS

代码语言: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"});
  }
});

//需要持续运行的脚本

代码语言:javascript
复制
var candy = ["twix", "taffy"];
for(var i = 0; i < candy.length; i++) {
  $("#button").click();
  setTimeout(function(){ console.log("candy") }, 3000);
}

在转到下一个数组时间之前,我有setTimout让页面有时间完成重载。

EN

回答 1

Stack Overflow用户

发布于 2018-05-30 08:25:50

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

看看这个:https://developer.chrome.com/extensions/messaging

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50594664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档