У меня есть страница, которая перезагружается при каждом нажатии кнопки, поэтому скрипт останавливается.Однако мне нужен скрипт для циклического прохождения массива даже после перезагрузки страницы.Должен ли я запускать свой скрипт непосредственно в файле 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, чтобы дать странице время для завершения перезагрузки перед переходом к следующему времени массива.