Я использую следующий код для установки локального хранилища в расширении Chrome.Настройка локального хранилища в расширении Chrome
localStorage.setItem('userkey','123');
/* I've also tried this:
chrome.storage.sync.set({'userkey': 123}, function() {
// Notify that we saved.
message('Settings saved');
});
*/
manifest.json:
{
"manifest_version": 2,
"name": "Shopaholic",
"description": "All the latest sale items from your favourite clothes shops right on your home screen",
"version": "1.0",
"chrome_url_overrides": {
"newtab": "index.html"
},
"content_scripts": [
{
"matches": ["*://*/index.html"],
"css": ["css/style.css"],
"js": ["js/jquery.min.js"]
}
],
"options_page": "options.html",
"permissions": [
"storage"
]
}
Однако, я получаю эту ошибку:
Uncaught SecurityError: Failed to read the 'localStorage' property from 'Window': The document is sandboxed and lacks the 'allow-same-origin' flag.
Если я использую закомментирована код выше, я получаю:
Uncaught TypeError: Cannot read property 'sync' of undefined
Где я пошла не так?
Вы переопределяете newtab с помощью HTML-документа и затем вводите скрипт контента в этот HTML-документ? Почему бы просто не включить файлы сценария содержимого непосредственно в разметку HTML, как обычно? Можете ли вы уточнить, где/какой контекст вы взаимодействуете с localStorage? – abraham
Как вы можете видеть из моего manifest.json, я переопределяю новую вкладку с файлом index.html. Я пытаюсь использовать localStorage как часть скрипта входа для хранения пользовательского ключа, который может быть проверен, чтобы узнать, зарегистрирован ли пользователь. – Sebastian