[英]What is the best way of including a JS file from JS code?
從另一個Javascript文件中包含Javascript文件的推薦方法是什么?
大多數人將JavaScript文件添加到文檔的頭部:
<script type="text/javascript">
var newfile=document.createElement('script');
newfile.setAttribute("type","text/javascript");
newfile.setAttribute("src", '/myscript.js');
document.getElementsByTagName("head")[0].appendChild(newfile);
</script>
有些圖書館會為你做這件事。 您還可以在文檔中添加腳本標記,指向要加載的文件(來自js),這是最簡單的,但有問題。
http://developer.yahoo.com/yui/yuiloader/
http://www.appelsiini.net/projects/lazyload
編輯:我看到很多答案都將腳本標記添加到文檔的頭部。 正如我所說的這個簡單的解決方案有一個問題,即您不知道瀏覽器何時加載了您請求的腳本,因此您不知道何時可以調用此代碼。 如果你想使用這樣的解決方案,你還應該以某種方式添加一個回調來告訴你何時加載了所需的代碼。
jQuery具有getScript()函數。 另請注意,上面提到的Lazy Load僅適用於圖像。 不適用於JavaScript文件。
$.getScript(url, [callback]);
這個怎么樣:
( 原始鏈接 )
<script type="text/javascript">
// Function to allow one JavaScript file to be included by another.
// Copyright (C) 2006-08 www.cryer.co.uk
function IncludeJavaScript(jsFile)
{
document.write('<script type="text/javascript" src="'
+ jsFile + '"></scr' + 'ipt>');
}
</script>
然后包含第二個JavaScript文件只需添加以下行:
IncludeJavaScript('secondJS.js');
來自的頁面包含了這種方法產生的一些問題,所以在使用該方法之前值得一看。
Theres還是一個內置於Scriptaculous中的功能,非常易於使用。
Scriptaculous.require("path/to/script.js");
值得一提,因為Scriptaculous是一個非常常見的JavaScript庫。
Dojo使用dojo.require()
完成它:
dojo.require("your.module.name");
通常這是使用XHR完成的同步操作。 但是如果你使用xDomain構建它將是異步的,並且在加載腳本時將引發dojo.addOnLoad()
。
閱讀更多相關信息:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.