我有兴趣了解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
在某些时候失败了。
答案 0 :(得分:0)
evil()
逐字(尝试)运行其参数中提供的代码
任何有效的JavaScript都应该在包含在字符串中的evil()
。
只要您在调用第二行时存在jQuery
,代码应该执行得很好。即使load
事件可能已经过去了,当时也是如此
(因此,将添加事件侦听器,但可能不会触发)