Chrome расширение цикла через массив во время обновления страницы - PullRequest
0 голосов
/ 30 мая 2018

У меня есть страница, которая перезагружается при каждом нажатии кнопки, поэтому скрипт останавливается.Однако мне нужен скрипт для циклического прохождения массива даже после перезагрузки страницы.Должен ли я запускать свой скрипт непосредственно в файле background.js вместо выполнения другого скрипта?Если так, не уверен как.Изначально я попробовал приложение Chrome с веб-просмотром, но не смог найти способ нажать кнопку.

<div id="button">click here</div>

// manifest

{
"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"
  }
}

// background JS

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);
}

У меня есть setTimout, чтобы дать странице время для завершения перезагрузки перед переходом к следующему времени массива.

1 Ответ

0 голосов
/ 30 мая 2018

вы можете отправить сообщение из сценария содержимого в фоновый сценарий для выполнения расчетов.возможно, проведите перезарядку в фоновом скрипте, чтобы бороться со спамом.затем вы можете при необходимости отправить результаты обратно в скрипт содержимого с помощью сообщений.

проверить это: https://developer.chrome.com/extensions/messaging

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...