我目前正在制作Chrome扩展程序,我正处于最后阶段,存储用户首选项 我知道本地存储将存储字符串,在这个阶段我只是使用字符串,但随着存储要求变大,需要一个2维数组。我已经看到本地存储无法存储数组,但您可以使用JSON。我从未使用过JSON,在查看示例时,我不明白该怎么做。
for (i=1;i<=localStorage["totalwebsites"];i++) {
// Get the title of the current item
var title = localStorage["websitetitle" + i];
// Create the new context menu item, and get its menuItemId to store in the right localStorage string
var menuItemId = chrome.contextMenus.create({parentId: ParentID, title: title, contexts:["selection"], onclick: searchFromContext});
// Store the created menu items menuItemId in the array so we know which item was chosen later on
websitesarray[menuItemId] = localStorage["websiteurl" + i];
}
正如您所看到的,当使用字符串时,这会变得非常混乱。我希望totalwebsites成为数组中项目的计数,websitetitle和websiteurl将在2维数组中。
我不知道你将如何在JSON中执行此操作,或者至少如何将其永久存储在Chrome中。我猜你必须在某些时候将它转换回Local Storage Strings吗?我不认为我得到这个
任何帮助/指针都会非常感激,我找不到多少:(
答案 0 :(得分:4)
别担心,JSON非常简单!假设您的网站存储在websitesarray
:
// To load:
websitesarray = JSON.parse(localstorage.websites);
// To store:
localstorage.websites = JSON.stringify(websitesarray);
确保你有一个理智的方法来处理尚未设置localstorage.websites
的情况,因为JSON.parse
如果输入为空则会抛出拟合。