2010-06-13 3 views
14

Я разрабатываю расширение для Google Chrome и сталкиваюсь с некоторыми проблемами. Я создал страницу options.html и добавил его в файл manifest.json. На странице показано правильно.Расширение Google chrome: локальное хранилище

Я сохранил параметры, а затем вернулся к странице, на которой предполагается запустить расширение.

К сожалению, локальное хранилище для параметров возвращало «нуль» вместо опции. Если я устанавливаю параметр локального хранилища непосредственно из сценария JS расширения, он работает нормально, но не если он был установлен на странице параметров.

Любая идея, как я могу получить доступ к локальным значениям параметров options.html из моего файла Javascript в расширении?

+1

Так как же это исправить? У меня такая же проблема. 'options.html' использует localStorage, но скрипт содержимого знает только локальный узел сайта, а localStorage' background.js' пуст ... – Rudie

+1

Я исправил его с помощью нового API хранения: https://developer.chrome .com/extensions/storage.html – Rudie

+0

На этом этапе вы должны использовать ['chrome.storage'] (https://developer.chrome.com/extensions/storage), а не [' localStorage'] (https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage) в расширениях Chrome, если только вы не намерены взаимодействовать с «localStorage» для определенного веб-сайта с использованием сценария контента. – Makyen

ответ

24

у вас установить их с помощью либо:

localStorage["var"]=data; 

или

localStorage.var=data; 

и вы загрузив их с помощью

var myvar = localStorage.var; 

Вы можете увидеть API here

+1

Да. Я решил проблему, но ее Chrome специфичен. – Rohan

+0

действительно? это всегда работает для меня, может быть, это было просто временно? , но по крайней мере сейчас он работает. – leegeorg07

+0

привет, я столкнулся с той же проблемой, можете ли вы отправить решение? –

14

Колорадо дый правильный метод:

if (typeof(localStorage) == ‘undefined’) { 
    alert(‘Your browser does not support HTML5 localStorage. Try upgrading.’); 
} 
else { 
    try { 
    localStorage.setItem(“name”, “Hello World!”); //saves to the database, “key”, “value” 
    } 
    catch (e) { 
    if (e == QUOTA_EXCEEDED_ERR) { 
     alert(‘Quota exceeded!’); //data wasn’t successfully saved due to quota exceed so throw an error 
    } 
    } 
    document.write(localStorage.getItem(“name”)); //Hello World! 
    localStorage.removeItem(“name”); //deletes the matching item from the database 
} 

ССЫЛКА: http://html5tutorial.net/tutorials/working-with-html5-localstorage.html

+13

Да, это надежный способ доступа к localStorage для javascripts, но любая версия Chrome, поддерживающая расширения, будет поддерживать localStorage, поэтому она избыточна. – Jason

Смежные вопросы