1

Uncaught ReferenceError: uneval is not defined

Firefoxではうまく機能しますが、GoogleChromeでは機能しません。

私は試してみます:

var getSaved = [['ABC', 'http://...'], ['DEF', 'http://...'], ['...etc...']];
var get_saved_items = eval(getSaved);
var name = [], url = [];
for (var i = 0; i < get_saved_items.length; i++) {
    name[i].push(get_saved_items[i][0]);
    url[i].push(get_saved_items[i][1]);
};
window.localStorage.setItem('saved_name', uneval(name));
window.localStorage.setItem('saved_links', uneval(url));

それは戻ります:Uncaught ReferenceError: uneval is not defined

どうしたの?

4

2 に答える 2

1

私はunevalSpiderMonkeyだけにあると信じているので、Mozillaベースのブラウザだけです。

于 2012-08-11T02:53:59.810 に答える
0

さまざまな理由から、「eval」の使用はお勧めしません(グーグルで検索できます)。uneval他のブラウザでは動作しません。

要件に応じて、JSONパーサーを使用できます。広く使用されているのは、CrockfordのJSONパーサーです。

https://github.com/douglascrockford/JSON-js/blob/master/json2.js

var numbers = '[1, 2, 3, 4, 5, 6]'; 
var names = '["abc", "def", "ghi", "jkl", "mno", "pqr"]';

// string to Javascript object 
var numbersObject = JSON.parse(numbers);
var namesObject = JSON.parse(names);

console.log(numbersObject);
console.log(namesObject);

// Javascript object to string
numbers = JSON.stringify(numbersObject);
names = JSON.stringify(namesObject);

console.log(numbers);
console.log(names);

デモ: http: //jsfiddle.net/xVvBp/

于 2012-08-11T05:48:11.653 に答える