我想使用AJAX动态加载JS文件并执行它。我指的是this page,它说:“此时,注入JS代码的首选方式似乎是使用AJAX加载JS源代码,然后使用eval()代码。”
但我担心使用eval来执行脚本。只是为了看看jQuery如何实现这一点,我检查了它的来源并发现了这个:
getScript: function( url, callback ) {
return jQuery.get( url, undefined, callback, "script" );
}
然后我搜索了jQuery get方法。但是定义了几种get方法。我是JS的新手,不知道在哪里寻找正确的get方法。
我想知道它是如何执行脚本的 - 无论是否使用eval,如果是,它是如何安全的。
有人可以指导我如何寻找正确的get方法。
答案 0 :(得分:5)
没有什么可以确保“安全”(实际上无法完成) 您只需加载可信脚本即可。
在一些委托之后,jQuery将调用一个名为“globalEval”的方法,该方法在传输的脚本文件上运行.execScript()
(IE)或标准window.eval()
。无论哪种方式,执行的脚本都可以访问任何内容。