だから、私は小さな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
"
]
誰かがこれを解決する方法、またはなぜクロムがそれをしているのか考えていますか?
編集1: Chromeバージョン15.0.874.121 m
編集2:まだ理解していませんが、配列の代わりにオブジェクトを使用して試してみると、機能するので、この方法で実行します。時間と助けに感謝します。