从其他Javascript文件中包含Javascript文件的推荐方法是什么?
答案 0 :(得分:5)
大多数人将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>
答案 1 :(得分:3)
有些图书馆会为你做这件事。您还可以在文档中添加脚本标记,指向要加载的文件(来自js),这是最简单的,但有问题。
http://developer.yahoo.com/yui/yuiloader/
http://www.appelsiini.net/projects/lazyload
编辑:我看到很多答案都会在文档的头部添加一个脚本标记。正如我所说的这个简单的解决方案有一个问题,即您不知道浏览器何时加载了您请求的脚本,因此您不知道何时可以调用此代码。如果你想使用这样的解决方案,你还应该以某种方式添加一个回调来告诉你何时加载了所需的代码。
答案 2 :(得分:2)
jQuery具有getScript()功能。另请注意,上面提到的Lazy Load仅适用于图像。不适用于JavaScript文件。
$.getScript(url, [callback]);
答案 3 :(得分:0)
这个怎么样:
<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');
来自的页面包含了这种方法产生的一些问题,因此在使用该方法之前值得一看。
答案 4 :(得分:0)
Scriptaculous内置了一个非常容易使用的功能。
Scriptaculous.require("path/to/script.js");
值得知道,因为Scriptaculous是一个非常常见的JavaScript库。
答案 5 :(得分:0)
Dojo使用dojo.require()
:
dojo.require("your.module.name");
通常这是使用XHR完成的同步操作。但是如果你使用xDomain构建它将是异步的,并且在加载脚本时将引发dojo.addOnLoad()
。
了解更多信息: