Итак, я пишу небольшой пользовательский скрипт Greasemonkey и он отлично работает в Firefox, однако, если я пытаюсь запустить его с Tampermonkey в Googles Chrome, я получаю странные ошибки при кодировании / декодировании массивов.
Я пытаюсь сделать кросс-браузер Script совместимым, поэтому мне пришлось написать функцию, чтобы решить, какие методы 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 м
РЕДАКТИРОВАТЬ 2: до сих пор не понял, но когда я пробую это с объектом вместо массива, это работает, так что я сделаю это сейчас, спасибо за ваше время и помощь!