Ada*_*ris 7 javascript jquery json
如何将javascript/jquery中的字符串转换为函数?
我正在尝试使用JSON参数列表来初始化函数.但是,其中一个参数是一个函数,我将其存储为字符串,当我尝试使用eval()返回函数时出现错误.
例如,如果我的JSON是:
json = { "one": 700, "two": "function(e){alert(e);}" }
Run Code Online (Sandbox Code Playgroud)
然后在我的代码中:
parameters = eval(json);
$('myDiv').addThisFeature({
parameter_1: json.one,
parameter_2: eval(json.two) // <= generates error
})
Run Code Online (Sandbox Code Playgroud)
示例: http ://jsfiddle.net/patrick_dw/vs83H/
var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
var parameters = JSON.parse( json );
eval( 'var func = ' + parameters.two );
func( 'test' ); // alerts "test"
Run Code Online (Sandbox Code Playgroud)
您需要在不支持它的浏览器中加载JSON库.
或者做两个单独的逃避:
示例: http ://jsfiddle.net/patrick_dw/vs83H/1/
var json = '{ "one": 700, "two": "function(e){alert(e);}" }';
eval( 'var parameters = ' + json );
eval( 'var func = ' + parameters.two );
func( 'test' );
Run Code Online (Sandbox Code Playgroud)
我假设你已经意识到了eval的危险性.
| 归档时间: |
|
| 查看次数: |
6567 次 |
| 最近记录: |