JavaScript的限制eval(和jQuery的globalEval)

时间:2014-07-02 09:53:30

标签: javascript jquery eval

我有兴趣了解JavaScript eval方法的局限性。

eval("console.log('This is a test')");

将按预期工作,在浏览器的开发控制台中打印文本This is a test。 但是这段代码呢:

eval("jQuery(window).on('load', function(){ console.log('This is a test'); });");

这会导致浏览器在加载页面后打印文本吗?

如何使用jQuery' globalEval?这有什么不同吗?

此致

编辑:我正在使用此进行一些测试:https://stackoverflow.com/a/745386/940158 即使在eval jQUery代码之后,处理程序也没有显示在$.eventReport(window)时,这让我相信eval在某些时候失败了。

1 个答案:

答案 0 :(得分:0)

evil()逐字(尝试)运行其参数中提供的代码 任何有效的JavaScript都应该在包含在字符串中的evil()

中工作

只要您在调用第二行时存在jQuery,代码应该执行得很好。即使load事件可能已经过去了,当时也是如此 (因此,将添加事件侦听器,但可能不会触发)