Я пишу расширение Chrome, которое использует скрипт контента для изменения определенных частей сайта.Сценарий содержимого работал нормально, пока я не попытался добавить страницу параметров в свое расширение.
Сейчас я использую файл options.html для сохранения пользовательских настроек в localalstorage, как вы можете видеть здесь:
<html>
<head><title>Options</title></head>
<script type="text/javascript">
function save_options() {
var select = document.getElementById("width");
var width = select.children[select.selectedIndex].value;
localStorage["site_width"] = width;
}
function restore_options() {
var fwidth = localStorage["site_width"];
if (!fwidth) {
return;
}
var select = document.getElementById("width");
for (var i = 0; i < select.children.length; i++) {
var child = select.children[i];
if (child.value == fwidth) {
child.selected = "true";
break;
}
}
}
</script>
<body onload="restore_options()">
Width:
<select id="width">
<option value="100%">100%</option>
<option value="90%">90%</option>
<option value="80%">80%</option>
<option value="70%">70%</option>
</select>
<br>
<button onclick="save_options()">Save</button>
</body>
</html>
У меня также есть файл background.html для обработки связи между сценарием содержимого и локальным хранилищем:
<html>
<script type="text/javascript">
chrome.extension.onRequest.addListener(function(request, sender, sendResponse) {
if (request.method == "siteWidth")
sendResponse({status: localStorage["site_width"]});
else
sendResponse({});
});
</script>
</html>
Затем есть фактический сценарий содержимого, который выглядит следующим образом:
var Width;
chrome.extension.sendRequest({method: "siteWidth"}, function(response) {
width = response.status;
});
Ничего из этого кода на самом деле не работает.Это выглядит достаточно убедительно для меня, но я не очень опытный программист, поэтому я могу ошибаться.
Может ли кто-нибудь объяснить мне местное хранилище с точки зрения непрофессионала?