概述
我在服务器端的配置文件中指定了一些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
将呼叫全球
埃瓦
不管有什么可能
埃瓦
在更具体的名称空间中。
任何想法都会受到赞赏。
最后
以上就是傻傻蜜蜂为你收集整理的eval语法报错 ie10_javascript eval()解析函数字符串时出现“语法错误”的全部内容,希望文章能够帮你解决eval语法报错 ie10_javascript eval()解析函数字符串时出现“语法错误”所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复