2013-05-23 4 views
0

Я создаю расширение Firefox. Я хочу использовать localStorage как глобальную переменную для всего браузера. Но он работает только для вкладки, где она была сохранена. Я не могу прочитать это значение на другой вкладке. Как я могу сделать его доступным с любой вкладки, или какие могут быть возможные проблемы?Локальное хранилище Firefox недоступно в других вкладках

Я использую его как:

localStorage.getItem('variable') 
localStorage.setItem('variable','value') 

Чтобы быть более точным, я вводя яваскрипта код на страницу, когда он был загружен. и из введенного кода я хочу сохранить свою ценность в localstorage.

вкладки имеют разные URL. и мой код пытается использовать localstorage при загрузке страницы. но проверка, если значение LocalStorage существует так:

if(localStorage.getItem('variable')){ ... } 
+1

ли вкладка другие имеют такое же происхождение? Если нет, нет кубиков ... – Alnitak

+0

Вы делаете это в таком порядке? Получение элемента перед его настройкой? –

+0

@DavidStarkey да, я пытаюсь прочитать его, прежде чем обновлять его. но перед чтением я проверяю, существует ли он. проверьте мое сообщение, чтобы увидеть код, как я проверяю – Jigberto

ответ

-1

Я не думаю, что вы можете использовать localStorage как глобальная переменная

localStorage is also the same as globalStorage[location.hostname], with the exception 
of being scoped to an HTML5 origin (scheme + hostname + non-standard port) and 
localStorage being an instance of Storage as opposed to 
globalStorage[location.hostname] being an instance of StorageObsolete which is covered 
below. For example, http://example.com is not able to access the same localStorage 
object as https://example.com but they can access the same globalStorage item. 
localStorage is a standard interface while globalStorage is non-standard so you 
shouldn't rely on these. 

Please note that setting a property on globalStorage[location.hostname] does not set 
it on localStorage and extending Storage.prototype does not affect globalStorage 
items, only extending StorageObsolete.prototype does. 

globalStorage Рассмотрите возможность использования и затем установить localStorage, где нужно быть.

Источник: https://developer.mozilla.org/en-US/docs/Web/Guide/DOM/Storage#localStorage

+1

Вы не должны предлагать использовать устаревшее и нестандартное – Ian

+0

Работать лучше, чем использовать что-то, что не работает вообще. –

+0

Это ** не работает **, если вы не используете версию FireFox от 2 до 13. Почему вы думаете, что это хорошее решение? – Ian

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