【发布时间】:2012-02-11 08:25:18
【问题描述】:
继续话题:jQuery .globalEval() function
我使用 jQuery.globalEval(varwithJScode);
现在,当 varwithJScode 中的代码包含语法或其他错误时,问题就开始了 - 整个脚本停止了。
jsFiddle不支持jQuery.globalEval(),但是我用eval()代替模拟。
http://jsfiddle.net/55FfW/ 尝试将 var codeforeval 更改为一些错误的 javascript 代码,下一个命令将失败。
有没有办法避免其他 JS 代码在出错时停止和/或有没有办法在 eval 之前检查语法?
试过用这个:
try {
jQuery.globalEval(jscode);
} catch (e) {
if (e instanceof SyntaxError) {
alert('JS error!');
}
}
不适合我!
【问题讨论】:
-
jsfiddle 支持 jQuery,你只需要选择左边的 jquery 库...
-
@DidierGhys:你认为我为什么没有这样做?
-
jsfiddle 让我使用
.globalEval()没有问题,当我updated your fiddle 或尝试this fiddle 从您链接到的另一个问题的接受答案中。这个也可以使用 try/catch:jsfiddle.net/nnnnnn/55FfW/3 -
@nnnnnn:很有趣。我在 jsfiddle 上尝试了 globalEval() 很多次,直到我将其更改为 eval() 才起作用。而且我永远不会忘记选择 jQuery 框架。解决方案实际上是从我的代码中删除 (instanceof SyntaxError) 并仅保留 (e)。谢谢!
-
我创建了一个new fiddle,并且无法以任何方式重现结果。
标签: javascript jquery