因此,我正在编写一个小 Greasemonkey Userscript,它在 Firefox 中运行良好,但是如果我尝试在 Google 的 Chrome 上使用 Tampermonkey 运行它,我在编码/解码数组时会出现奇怪的错误。
我尝试使脚本跨浏览器兼容,所以我必须编写一个函数来决定使用哪些 JSON 方法
function jsonEncode(string) {
try {
return JSON.stringify(string);
} catch (e) {
return JSON.encode(string);
}
}
function jsonDecode(obj) {
try {
return JSON.parse(obj);
} catch (e) {
return JSON.decode(obj);
}
}
为了简化事情,我现在将代码简化为一个简单的数组,并尝试编码/解码和迭代
var array = ['string1', 'string2'];
var encoded = jsonEncode(array);
localStorage.setItem('json_test', encoded);
var decoded = jsonDecode(localStorage.getItem('json_test'));
for(var i = 0; i < decoded.length; i++) {
console.log(decoded[i]);
}
我希望输出是
string1
string2
相反,铬给了我这个
[
"
s
t
r
i
n
g
1
"
,
"
s
t
r
i
n
g
2
"
]
有谁知道如何解决这个问题,或者为什么 chrome 会这样做?
编辑 1: Chrome 版本 15.0.874.121 m
编辑2:还没有弄清楚,但是当我用一个对象而不是一个数组来尝试它时,它可以工作,所以我现在就这样做,感谢您的时间和帮助!