2011-09-20 66 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中注入一個'