2009-12-25 13 views
11

Sto provando una semplice estensione Google Chrome, in cui ho bisogno di comunicare tra la pagina delle opzioni e la pagina di sfondo per ottenere/impostare le opzioni.Comunicazione tra la pagina Opzioni e la Pagina sfondo in Google Chrome

Ho provato chrome.extension.sendRequest (..) e chrome.extension.onRequest.addListener (..) ma senza successo!

Mi manca qualcosa? O dovrei pubblicare il mio codice?

+1

In generale, si tratta di un buona idea per pubblicare il tuo codice, o una versione ridotta che mostri il problema senza nulla di estraneo. È molto più facile per le persone dire cosa sta andando male quando vedono il codice. –

risposta

15

In te background.html, si potrebbe avere qualcosa di simile:

<html> 
<script> 
    settings = { 
    get foo() { 
     return localStorage['foo']; 
    }, 
    set foo(val) { 
     localStorage['foo'] = val; 
    } 
    } 
</script> 
</html> 

Ora nella tua pagina delle opzioni, si può semplicemente utilizzare chrome.extensions.getBackgroundPage. Per esempio in options.html:

<html> 
<head> 
    <script> 
    var bkg = chrome.extension.getBackgroundPage(); 
    function saveOptions() { 
    bkg.settings.foo = 'bar'; 
    } 
    function restoreOptions() { 
    document.getElementById('foo').value = bkg.settings.foo; 
    } 
    </script> 
</head> 
<body onload="restoreOptions()"> 
    <form onsubmit="return false;"> 
    <input id="foo" type="text" /> 
    <button onclick="saveOptions();">Save</button> 
    </form> 
</body> 
</html> 

ricordare una cosa, la guida dev è il tuo migliore amico :) http://developer.chrome.com/extensions/devguide

0

sì, questo non funzionera ':

<!-- 
    - JavaScript and HTML must be in separate files: see our Content Security 
    - Policy http://developer.chrome.com/extensions/contentSecurityPolicy.html 
--> 
Problemi correlati