2016-10-01 3 views
0

Ich arbeite an einer ziemlich einfachen Erweiterung. Mein popup.html hat einige Radiobuttons, die eine Reihe vordefinierter Optionen für den Benutzer darstellen. Das Problem ist, dass die Logik meines Inhaltsskriptes von diesen Optionen abhängt.Kann ich Eingabedaten von popup.html in localStorage speichern?

Also, meine Frage ist: nehmen wir an, ich ein Skript zu ‚popup.html‘ anhängen würde (Sitzung Chrome CSP), die in meinem Radiobuttons Auswahl auf jede Veränderung zuhört und sobald es tut geschieht sowas wie. localstorage.setItem (Schlüssel, Wert)? Könnte mein Content-Skript diesen Wert zu gegebener Zeit vom lokalen Speicher abrufen?

+0

Warum konnten Sie das nicht tun? – Fralec

+0

@Fralec Ich bin sehr neu dazu. Deshalb frage ich. Soll ich 'chrome.storage.localStorage.setItem()' aufrufen? – 52hertz

+0

Sie scheinen verwirrt zu sein über den Unterschied zwischen ['Window.localStorage'' (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) und [' chrome.storage' ] (https://developer.chrome.com/extensions/storage) Siehe: [window.localStorage vs chrome.storage.local] (http://stackoverflow.com/questions/24279495/window-localstorage-vs-chrome- Speicher-lokal). Bei Interesse hat [diese Antwort] (http://stackoverflow.com/a/39236352/3773011) eine Beispiel-Popup- & -Options-Seite, die Daten in 'chrome.storage.local' speichert und sowohl in Chrome als auch in Chrome getestet und funktioniert Feuerfuchs. – Makyen

Antwort

1

Natürlich können Sie das tun. Hier zwei Beispiele:

chrome.storage.local.set({'value': theValue}, function() { 
    // Notify that we saved. 
    message('Settings saved'); 
}); 

chrome.storage.local.get('value', function(obj) { 
    //Notify that we get the value. 
    message('Value is ' + obj.value); 
}); 

Oder Sie den Sync-Speicher verwenden kann:

chrome.storage.sync.set({'value': theValue}, function() { 
    // Notify that we saved. 
    message('Settings saved'); 
}); 

chrome.storage.sync.get('value', function(obj) { 
    //Notify that we get the value. 
    message('Value is ' + obj.value); 
}); 

Hier ist the documentation.

Der Unterschied zwischen und window.localStorage ist, dass Sie window.localStorage auf jedem aktuellen Browser verwenden können. Auch auf Websites. Die gespeicherten Objekte werden gespeichert, bis der Benutzer den Browser schließt.

Sie erstellen eine Chrome-Erweiterung, daher würde ich Ihnen empfehlen, die API zu verwenden, die dafür hergestellt wurde.

+0

Da die Frage speziell auf ['Window.localStorage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) gerichtet ist, sollten Sie die Unterschiede zwischen dieser API und ['chrome.storage'] (https://developer.chrome.com/extensions/storage). – Makyen

+0

Noch einmal. Nur um zu sehen, dass ich es richtig gemacht habe. Ich erstelle ein popup.html. Attachiere das Skript auf eine Art und Weise '

Verwandte Themen