【发布时间】:2011-09-20 03:25:09
【问题描述】:
我有一个 javascript 数组,我正在对其进行字符串化以便将其存储在本地存储中
console.log(request.keywords.length);
localStorage.keywords = JSON.stringify(request.keywords);
其中关键字是 javascript 数组。这里request.keywords.length 返回 12,这是数组中的元素数。
检索并解析回 JSON 后
var keywords = chrome.extension.getBackgroundPage().getItem("keywords");
var kjos=JSON.parse(keywords);
console.log(kjos.length);
返回的长度为 342,即整个字符串的长度。我尝试通过 constructor.name 属性获取对象类型,它给了我string 而不是Array。
有什么想法吗?
Snippets:
Background.html
function getItem(key) {
var value;
log('Get Item:' + key);
try {
value = window.localStorage.getItem(key);
}catch(e) {
log("Error inside getItem() for key:" + key);
log(e);
value = "null";
}
log("Returning value: " + value);
return value;
}
/////
chrome.extension.onRequest.addListener(
function(request, sender, sendResponse) {
localStorage.keywords = JSON.stringify(request.keywords);
}
);
///////////
Popup.js
var keywords = chrome.extension.getBackgroundPage().getItem("keywords");
var kjos=JSON.parse(keywords); //kjos is a string variable
/////
keywords.js
//keywordsArray is an Array object
// Message passing to background page
chrome.extension.sendRequest({message: "setKeywords", keywords: keywordsArray}, function()
{
console.log(keywordsArray);
console.log("message sent");
// The data has been sent, we can close the window now.
//window.close();
});
【问题讨论】:
-
你能在
keywords这行后面记录什么吗:localStorage.keywords = JSON.stringify(request.keywords); -
它的字符串化符号,例如 "[\"Google\", \"Account Options\", \"Search Options\", \"Search Results\", \"jQuery.getJSON() – jQuery API\", \"你如何在 JavaScript 中解析一个看起来像这样的数组...\", \"获取更多讨论结果\"]
-
可以打印出关键字数组的元素吗?
-
它的列表很大,但它的标准数组
标签: javascript jquery json google-chrome google-chrome-extension