JS實(shí)現(xiàn)include功能(提供完整的示例下載)
Posted on 2007-03-21 09:07 itspy 閱讀(8998) 評(píng)論(3) 編輯 收藏 所屬分類: JAVA技術(shù)JS沒有直接提供import這個(gè)功能,我想肯定有人遇到過(guò)這類問(wèn)題。用baidu搜索了一下,找到了一些但都比較亂,看不太明白,郁悶了2天,后來(lái)想一想用google搜索一下。結(jié)果找到了幾個(gè)網(wǎng)頁(yè)講的蠻清楚的。
http://www.cryer.co.uk/resources/javascript/script17_include_js_from_js.htm
然后做了一個(gè)簡(jiǎn)單的實(shí)驗(yàn)。發(fā)現(xiàn)效果不錯(cuò)。
順便介紹一下應(yīng)用場(chǎng)景,就好像設(shè)計(jì)模式一樣,一個(gè)東西總要有他的應(yīng)用場(chǎng)景,平常我們開發(fā)時(shí),直接在網(wǎng)頁(yè)里面通過(guò)“<SCRIPT src="include.js"></SCRIPT>”這種方式添加JS好的很嘛,干嘛要費(fèi)力引入這種新的方式呢。
在開發(fā)JS框架時(shí)肯定是要用到這種方法,開發(fā)框架時(shí)你要求開發(fā)者使用你的庫(kù),但要同時(shí)引入好幾個(gè)文件,這樣會(huì)給人帶來(lái)很不好的體驗(yàn)。
另外一種就是我現(xiàn)在遇到的:我寫了幾個(gè)頁(yè)面,針對(duì)這些頁(yè)面引入的所有JS函數(shù)我全部在一個(gè)JS文件中了。但我出于調(diào)試的需要,我要引入一個(gè)JS庫(kù)(firebuglite),這個(gè)庫(kù)專門用來(lái)打印log,如果不引入的話,我寫的這些JS就會(huì)出錯(cuò),也就是我要找出哪些頁(yè)面引用了我的這個(gè)JS文件。然后在所有的頁(yè)面通過(guò)<SCRIPT src="include.js"></SCRIPT> 的方式來(lái)添加這個(gè)打印log的庫(kù)。
我當(dāng)時(shí)就想,既然只有我的這個(gè)JS文件要用,我干嘛不通過(guò)include直接把它包含進(jìn)來(lái),這樣就只要添加一處就行了,不要在每個(gè)頁(yè)面都去添加,一不小心就忘記加錯(cuò)了,或者是將來(lái)不要了,又忘記刪除,留下一推垃圾。這就是我之所以使用include的原因。或者是別人引用了我的包,而我不知道,這樣也會(huì)形成錯(cuò)誤,如果使用這種include就不會(huì)這樣了。
?
?
示例下載地址:http://www.aygfsteel.com/Files/itspy/AJAX.rar
firebuglite:http://www.getfirebug.com/docs.html
因?yàn)槭褂昧讼鄬?duì)目錄來(lái)include,最好全部解壓縮之后才能運(yùn)行,不能直接在壓縮包中運(yùn)行。
核心代碼:
function IncludeJavaScript(jsFile)
{
? document.write('<script type="text/javascript" src="'
??? + jsFile + '"></script>');
}