Javascript Jquery:在Jquery的(字符串)变量中执行Jquery脚本
我知道这是一个令人困惑的问题。请让我详细说明 我需要执行一个Javascript Jquery:在Jquery的(字符串)变量中执行Jquery脚本,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我知道这是一个令人困惑的问题。请让我详细说明 我需要执行一个jquery脚本,该脚本编写在从ajax请求获得的文本文件中 e、 我从ajax请求中获得以下代码 ($($("#jstreeblock").children().children().children()[0]).children('li').attr('id')) 我需要执行上述脚本并将其结果存储在一个变量中 另一个简单的例子。 我得到了 'a'+'b' 如果我执行上面的脚本,结果将是ab,但如果我使用eval运行它,则会出现错
jquery脚本
,该脚本编写在从ajax
请求获得的文本文件中
e、 我从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未捕获的语法错误:意外字符串(…)(匿名)
函数)@VM157981:2导入脚本。\u evaluateOn@
VM156978:878InjectedScript.\u evaluateAndWrap@
VM156978:811InjectedScript.evaluate@VM156978:667
请提供帮助并表示衷心感谢通常情况下,
eval
在这种情况下应该可以正常工作。但我真的不知道你怎么称呼它。你说你把它叫做eval('a'+'b')
,应该是eval('a'+'b')
。这也可能是原因
现在,关于eval
,按照@Sosdoc的建议使用它是一个危险的想法。然而,为了解决您的问题,请检查这里,我有一个模拟的json
响应,eval
工作正常。我还添加了[注释]您的“'a'+'b'
案例。你也可以检查一下。结果应该是ab
还可以从user@Chocula中找到这个极好的答案,以了解更多信息
作为DOM文本插入的JavaScript将不会执行。但是,您可以使用
实现目标的动态脚本模式。基本思想是
将要执行的脚本移动到外部文件中,然后
在获得Ajax响应时创建脚本标记。然后设置
src属性,它加载并执行
外部脚本
创建一个
标记,将您的代码附加到其中,将整个脚本
元素附加到当前文档的主体。如果可能,最好避免执行您收到的脚本,劫持者可能会执行恶意代码。如果可能的话,试着发送数据,然后根据收到的数据做一些事情。
eval(''a'+'b'')