2013-07-23 14 views
5

Sviluppo l'estensione Chrome.L'estensione Chrome onSuspend non viene mai chiamata

Provo ad aggiungere listener di eventi a chrome.runtime.onSuspend, ma non viene mai chiamato.

Io uso il seguente codice, ma localStorage non viene modificato e non ci sono messaggi di registro anche nella console (io uso --enable-logging --v=1 per salvare i messaggi di registro nel file).

chrome.runtime.onSuspend.addListener(function() { 
    localStorage["suspend"] = new Date(); 
    console.log("On suspend"); 
}); 

dialogo Test: WinXP SP3 x86 con Chrome 28.0.1500.72 m

ho creato estensione prova a riprodurre con facilità il problema:

manifest.json

{ 
    "manifest_version": 2, 

    "name": "Chrome onSuspend test", 
    "version": "1.0", 

    "background": { 
    "scripts": ["background.js"] } 
} 

background.js

chrome.runtime.onSuspend.addListener(function() { 
    localStorage["suspend"] = new Date(); 
    console.log("On suspend"); 
}); 

risposta

8

L'evento onSuspend viene attivato solo quando la pagina dell'evento diventa inattiva.

Poiché non è stato dichiarato persistent: false nel file manifest, la pagina di sfondo è background page, non event page. Di conseguenza, la pagina non diventerà mai inattiva e l'evento onSuspend non verrà mai attivato.

Se si desidera trasformare il vostro sfondo della pagina in una pagina di eventi, utilizzare

... 
    "background": { 
     "scripts": ["background.js"], 
     "persistent": false 
    } 
} 
+2

Non dovrebbe pagina di sfondo diventa inattivo nel browser vicino/estensione rimuovere o disabilitare estensione eventi? – Anton

+3

Come posso gestire questi eventi? – Anton

+0

@Anton Non puoi. Quando il browser si chiude, tutte le estensioni vengono terminate senza preavviso. –

Problemi correlati