我知道它有点令人困惑的问题。请让我详细说明。
我需要执行一个if (icon == null) {
setGraphic(label);
}
else {
final HBox hbox = new HBox(ICON_SPACING);
final Label iconLabel = new Label("", icon);
hbox.getChildren().addAll(iconLabel, label);
setGraphic(hbox);
}
写在我从jquery script
请求获得的文本文件中。
e.g。我从ajax请求中获取以下代码
ajax
我需要在变量中执行并存储上述脚本的结果。
另一个简单的例子。 我已经
了($($("#jstreeblock").children().children().children()[0]).children('li').attr('id'))
如果我执行上面的脚本,结果将是'a'+'b'
但是如果我使用ab
运行它我会收到错误
脚本
eval
如果我将其作为
运行<script>
var a = "'a'+'b'"
console.log(a); // printing 'a'+'b'
eval(a); // it should give ab but not giving any result
</script>
给出错误,如下所示
错误
VM157982:1未捕获的SyntaxError:意外的字符串(...)(匿名 功能)@ VM157981:2InjectedScript._evaluateOn @ VM156978:878InjectedScript._evaluateAndWrap @ VM156978:811InjectedScript.evaluate @ VM156978:667
请帮助,非常感谢
答案 0 :(得分:1)
通常eval
应该适用于这种情况。但真的不确定你是怎么称呼的。你说你称之为eval(''a'+'b'')
,应该是eval("'a'+'b'")
。这也可能是原因。
现在,关于eval
,使用它是一个危险的想法@Sosdoc建议。但是,为了解决您的问题,请查看fiddle我在哪里有一个模拟json
响应,eval
正常工作。我还添加了[评论]你的"'a'+'b'"
案例。你也可以检查一下。它应该会给你ab
。
还可以从@Chocula用户here找到这个优秀的答案,了解更多相关信息,
作为DOM文本插入的JavaScript将无法执行。但是,你可以使用 动态脚本模式来实现您的目标。基本的想法是 将要执行的脚本移动到外部文件中 获得Ajax响应时创建脚本标记。然后你设置 你的脚本标签和瞧的src属性,它加载并执行 外部脚本。