eval语法报错 ie10_javascript eval()解析函数字符串时出现“语法错误”

我在服务器端的配置文件中指定了一些javascript代码。由于我不能在配置语言(Lua)中指定JavaScript函数,所以我将它作为一个字符串。服务器返回一些JSON中的字符串,我让客户机使用一个清理函数来解释它:

parse_fields = function(fields) {

for (var i = 0; i < fields.length; ++i) {

if (fields[i].sortType) {

sort_string = fields[i].sortType;

fields[i].sortType = eval(sort_string);

}

return fields;

}

};

所以基本上它只是评估

sortType

如果它存在。问题是Firebug在

eval()

行。当我在Firebug控制台上运行相同的步骤时,它不会产生任何问题,我可以按预期执行函数。我尝试了一些不同的变化:

window.eval

而不是平原

eval

,存储

排序类型

正如我在上面所做的,尝试对字符串进行小的变化。

的样本值

fields[i].sortType

"function(value) { return Math.abs(value); }"

. 以下是我在Firebug控制台中进行的测试:

>>> sort_string

"function(value) { return Math.abs(value); }"

>>> eval(sort_string)

function()

>>> eval(sort_string)(-1)

1

以及Firebug中的错误本身:

syntax error

[Break on this error] function(value) { return Math.abs(value); }

最后一个可能相关的位是,这一切都被包装在一个ext-js中。

onReady()

函数,具有

Ext.ns

顶部的命名空间更改。但我认为

窗口.eval

将呼叫全球

埃瓦

不管有什么可能

埃瓦

在更具体的名称空间中。

任何想法都会受到赞赏。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值