我刚学习了jQuery的.makeArray,现在我正在尝试使用JSON.stringify将数组存储在localStorage中,但结果出现了意外情况。
以下代码是有效的:
var links = {'one': 1, 'two': 2 };
var setstr = JSON.stringify(links);
localStorage.setItem('strlinks', setstr);
var getstr = localStorage.getItem('strlinks');
console.log(getstr); //Returns what's expected - '{"one":1, "two":2}'
这不会:
var links = $.makeArray($('a'));
alert(links); //Returns list of links
var setstr = JSON.stringify(links);
localStorage.setItem('strlinks', setstr);
var getstr = localStorage.getItem('strlinks');
console.log(getstr); //Returns '[]'
有关我做错了什么的任何想法?
String
中,这是localStorage
唯一能存储的东西。但是弹出窗口不需要触及链接本身,对吧?它只需要知道链接指向的URL(href
)就可以了,那肯定只是一个String
,所以可以被JSON字符串化。虽然我认为你根本不需要使用localStorage
。我不知道Chrome怎么样,但大多数浏览器扩展应该没有问题打开一个新窗口并填充一个字符串列表,而无需通过任何类型的localStorage
数据库进行中介。 - bobince