簡體   English   中英

從JS代碼中包含JS文件的最佳方法是什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM