我正在编写一个Chrome扩展程序,它使用内容脚本来修改网站的某些部分。内容脚本工作正常,直到我试图将选项页面添加到我的扩展。Chrome浏览器扩展 - 本地存储无法正常工作
现在我使用的是options.html文件来保存用户的喜好来本地存储,你可以在这里看到:
<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文件来处理内容之间的通信脚本和localStorage的:
<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;
});
没有任何代码实际工作。它看起来很稳固,但我不是一个非常有经验的程序员,所以我可能是错的。
难道有人可以用通俗的话来解释本地存储吗?
参考http://www.rajdeepd.com/articles/chrome/localstrg/LocalStorageSample.htm已死 – olegtaranenko 2012-09-04 11:41:42
@olegtaranenko这是镜像http://web.archive.org/web/20100106033106/http://www.rajdeepd .COM /用品/铬/ localstrg/LocalStorageSample.htm – TankorSmash 2012-09-07 03:20:27