2

在 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.
4

1 回答 1

0

您也许可以通过后台页面访问它:

chrome.runtime.getBackgroundPage(function(win) {
   控制台.log(win.localStorage.property);
});

注意:我没有看到您看到的问题。我只是建议一种可能的解决方法。

于 2013-09-10T22:15:23.103 回答