在 chrome 扩展的选项页面中,localStorage 为 null,因此无法使用。
这是解压后的扩展产生错误的文件。
清单.json
{
"name": "someTest",
"version": "1.0",
"manifest_version": 2,
"description": "Not important",
"icons": {
"16": "icon16.png",
"48": "icon48.png"
},
"options_page": "options.html"
}
选项.html
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Just a test</title>
</head>
<body>
<script src="options.js"></script>
</body>
</html>
选项.js
console.log(localStorage);
访问选项页面,控制台输出null
. 尝试使用 更改或访问属性localStorage['property']
时,由于 localStorage 为空,它会引发错误。
我尝试了类似的东西localStorage = {property: 'value'};
,但它没有改变任何东西,之后 localStorage 仍然为空。
我在 Windows 8 上使用 chrome 28.0.1500.95。
编辑:问题仍然存在。但是,如果可以帮助某人,我-暂时-使用替代方法。我现在使用 chrome 存储。
下面是它的工作原理。
清单.json
"permissions": ["storage"]
选项.js
//You can also use an array of strings instead of 'property' to get multiple values.
chrome.storage.local.get('property', function(data)
{
if(!data.propery) return; //Not set
console.log(data.property);
});
chrome.storage.local.set({property: 'value'}, function()
{
console.log('saved');
});
//It can be used the same way directly in content scripts.