Il mio primo post qui =].Chrome extension setTimeout non funziona correttamente
Sto costruendo un'estensione chrome e sto utilizzando un setTimeout in modo ricorsivo. Ho notato che se l'ho impostato su fino a 13 secondi, funziona, ma se lo imposto su 14secs + non funzionerà.
Questo è un esempio che è sul mio background.js
function start() {
var timeout = setTimeout(function() { start(); }, 1000*15);
alert('test');
}
chrome.webNavigation.onCompleted.addListener(function(o) {
start();
}, {
url: [
{urlContains: 'http://www.example.com/in.php'},
{urlContains: 'http://www.example.com/out.php'}
]
}
);
Se si riduce che timeout a 1000 * 13, funziona.
Questo è il mio manifest.json
{
"name": "Extension",
"version": "0.0.7",
"manifest_version": 2,
"description": "Keeps proxy session alive",
"homepage_url": "http://www.example.com",
"icons": {
"16": "icons/icon16-on.png",
"48": "icons/icon48-on.png",
"128": "icons/icon128-on.png"
},
"default_locale": "en",
"background": {
"scripts": [
"src/bg/background.js"
],
"persistent": false
},
"browser_action": {
"default_icon": "icons/icon19.png",
"default_title": "Example - Off",
"default_popup": ""
},
"permissions": [
"webNavigation",
"*://*/*",
"https://*/*"
]
}
Qualche idea su che cosa potrebbe causare questa stranezza? Lo sto testando in modalità sviluppatore, BTW.
Grazie in anticipo!
EDIT
codice fisso:
manifest.json
ho aggiunto "allarmi" per i permessi
background.js
Aggiunto Thi s evento per ascoltare l'alarms.create:
chrome.alarms.onAlarm.addListener(function(alarm){
start();
});
sostituito la funzione setTimeout con la linea sotto
chrome.alarms.create("Start", {periodInMinutes:1});
Spero che questo aiuti!
Sì !! Spot on !! Molto bene! Voterò su questo una volta che avrò abbastanza reputazione. Grazie mille, amico. – badcom