Не могу сохранить переменную в локальное хранилище
Я пытаюсь сохранить URL в localalstorage для моего расширения Chrome. Этот URL-адрес вводится из поля ввода текста во всплывающем окне. Я просто не могу получить скрипт, который сохраняет новое значение для работы.
Вот мой код:
popup.html:
<html>
<head>
<title>Favourite.es Settings</title>
<link rel="stylesheet" href="/mdl/material.min.css">
<script src="/mdl/material.min.js"></script>
<link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
<link rel="stylesheet" href="/css/settings.css">
<link rel="stylesheet" href="https://code.getmdl.io/1.1.1/material.blue-light_blue.min.css" />
</head>
<body>
<script src="popup.js"></script>
<div class="container">
<img src="/img/Branding.png">
</div>
<div class="container">
<div class="mdl-textfield mdl-js-textfield mdl-textfield--floating-label" style="width: 80%; margin-left:30px;">
<input class="mdl-textfield__input" type="text" id="bgurl">
<label class="mdl-textfield__label" for="sample3">Background URL:</label>
</div>
<button class="mdl-button mdl-js-button mdl-button--raised mdl-js-ripple-effect" style="margin-left:30px" onclick="save();">
Save
</button>
</div>
</body>
</html>
popup.js:
function save(){
console.log("Init SAVE");
var bgurl = document.getElementById("bgurl");
localStorage.setItem("bgurl", bgurl.value);
}
3 ответа
У меня была эта проблема раньше.
Попробуйте изменить последнюю строку кода на
window.localStorage.setItem("bgurl", bgurl.value);
Это прекрасно работает для меня. Если первое утверждение не работает, попробуйте второе утверждение. Проверьте, есть ли у вас ошибки JavaScript в консоли Chrome.
if (window.localStorage) {
localStorage.setItem("myKey", mykeyval);
// OR this works too
localStorage["myKey"] = mykeyval;
}
Удалось заставить это работать, используя это:
(popup.js)
function save(){
console.log("Init SAVE");
var bgurl = document.getElementById("bgurl");
localStorage.setItem("bgurl", bgurl.value);
}
document.addEventListener('DOMContentLoaded', function() {
var link = document.getElementById('btn');
// onClick's logic below:
link.addEventListener('click', function() {
save();
});
});