javascript Uncaught ReferenceError:未定义uneval

时间:2012-08-11 02:50:57

标签: javascript

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

有什么问题?

2 个答案:

答案 0 :(得分:1)

我相信uneval只是在SpiderMonkey中,所以只是基于Mozilla的浏览器。

答案 1 :(得分:0)

建议不要使用'eval',因为原因不同(你可以google)。 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/