2011-09-20 68 views
1

为了以异步的方式从我的服务器加载外部js文件,而不是等待它们加载到html头部或body的末尾,我使用jquery。 get()方法来检索那些js文件作为一个字符串,转换成具有的eval(对象),并分配给全局变量作为属性,即(伪):评价服务器js文件危险

var globalNameSpace = {}; 
var data = jquery.get('url/foo.js');   // foo.js returns a function with code 
globalNameSpace[foo] = eval(data); 
// from here onwards, access code in foo.js as: 
globalNameSpace.foo.property; 
globalNameSpace.foo.method(); 

这也意味着我可以显示一个HTML带有加载条的页面等。

问题是,eval()的所有炒作对于不受控制的输入都是危险的,因为这只是加载“受控”(尽管可能是bug gy:P)脚本从我自己的服务器(ajax相同的域策略等),这是如何更简单地包含带有标签的js文件,我错过了什么?

+1

为什么不简单地使用'.getScript()'? http://api.jquery.com/jQuery.getScript/ – nrabinowitz

+0

这是安全的。你只需要在DOM中注入一个'