我正在編寫一個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