1

Uncaught ReferenceError: uneval is not defined

它适用于 Firefox,但不适用于 Google Chrome。

我尝试:

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

我相信uneval只是在 SpiderMonkey 中,所以只是基于 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 回答