Javascript Chrome扩展中的存储阵列
我目前正在制作一个Chrome扩展,我正处于它的最后阶段,存储用户的首选项。Javascript Chrome扩展中的存储阵列,javascript,json,google-chrome,local-storage,Javascript,Json,Google Chrome,Local Storage,我目前正在制作一个Chrome扩展,我正处于它的最后阶段,存储用户的首选项。 我知道本地存储将存储字符串,在这一阶段,我只使用字符串是有点困难的,但是随着存储需求的增加,需要一个二维数组。我已经看到,本地存储无法存储阵列,但可以使用JSON。我从未使用过JSON,在查看示例时,我不知道如何使用JSON for (i=1;i<=localStorage["totalwebsites"];i++) { // Get the title of the current item
我知道本地存储将存储字符串,在这一阶段,我只使用字符串是有点困难的,但是随着存储需求的增加,需要一个二维数组。我已经看到,本地存储无法存储阵列,但可以使用JSON。我从未使用过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];
}
for(i=1;i别担心,JSON非常简单!假设您的网站存储在websitesarray
:
// To load:
websitesarray = JSON.parse(localstorage.websites);
// To store:
localstorage.websites = JSON.stringify(websitesarray);
请确保您有一个合理的方法来处理localstorage.websites
尚未设置的情况,因为JSON.parse
的输入为空时会引发问题。别担心,JSON非常简单!假设您的网站存储在websitesarray
:
// To load:
websitesarray = JSON.parse(localstorage.websites);
// To store:
localstorage.websites = JSON.stringify(websitesarray);
确保你有一个合理的方法来处理localstorage.websites
尚未设置的情况,因为JSON.parse
的输入是空的,它会抛出一个错误。所以,我要说的是,这些项将按照它们添加的顺序存储在数组中?如果是这样,那就太棒了。最后一件事,这是多维的吗我可以将menuItemId、title和url存储在同一行中,这样我就可以使用menuItemId=websitesarray[0,1];
title=websitesarray[1,1];
和url=websitesarray[1,2]
对于第一项?不,这只是一种将数组转换为字符串或从字符串转换为字符串的方法,因此可以将数组存储在单个localstorage
插槽中。JavaScript不直接支持多维数组,因此您仍然需要为其提供单独的解决方案。(最干净的解决方案:对象。最简单的解决方案:标题、URL和ID的单独数组。)感谢您的快速回复。现在,我将有3个数组(我想看看用户是否需要),然后我会用对象来清理一下。再一次,谢谢你,祝你有一个愉快的一天。所以,我要说的是,这些项目将按照它们添加的顺序存储在数组中?如果是这样,那就太棒了。最后一件事,这是多维的吗,这样我就可以将menuItemId、title和url存储在同一行中?这样我就可以使用menuIte了mId=websitesarray[0,1];
title=websitesarray[1,1];
和url=websitesarray[1,2]
对于第一项?不,这只是一种将数组转换为字符串或从字符串转换为字符串的方法,因此可以将数组存储在单个localstorage
插槽中。JavaScript不直接支持多维数组,因此您仍然需要为其提供单独的解决方案。(最干净的解决方案:对象。最简单的解决方案:标题、URL和ID的单独数组)感谢您的快速回复。现在,我将有3个数组(我想看看用户是否需要),然后我将使用对象稍微清理一下。再一次,谢谢您,祝您度过愉快的一天。