从JS代码中包含JS文件的最佳方式是什么?
答
如何:
<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');
从来到该页面包含的一些陷阱这是由这种方法引起的,所以在使用该方法之前值得一看。
答
有图书馆会为你做这个。您还可以在文档中添加一个脚本标签,指向要加载的文件(来自js),这是最简单但存在问题的文件。
http://developer.yahoo.com/yui/yuiloader/
http://www.appelsiini.net/projects/lazyload
编辑:我看到了很多,一个脚本标记添加到您的文档的头部答案。正如我所说,这个简单的解决方案有一个问题,即您不知道浏览器何时完成加载您请求的脚本,因此您无法知道何时可以调用此代码。如果你想使用这样的解决方案,你还应该添加一个回调以告诉你什么时候加载了所需的代码。
答
大多数人的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>
答
也Theres建成Scriptaculous的功能,这是非常容易使用。
Scriptaculous.require("path/to/script.js");
值得了解,因为Scriptaculous是最近很常见的JavaScript库。
答
Dojo做它用dojo.require()
:
dojo.require("your.module.name");
通常这是XHR做了同步操作。但是,如果使用xDomain构建,它将会异步,并且在加载脚本时会引发dojo.addOnLoad()
。
了解更多关于它:
- Modules
- What dojo.require does
- Quickstart: custom builds(包括xDomain说明)
- Cross-domain Dojo(特别地专用于xDomain东西)。
如果您在文档加载之后使用该文件,您会惊讶,因为document.write将替换您的活动文档。 – some 2008-12-23 08:23:54
另外,不需要将结束标记分为两部分。由于根据(x)HTML DTD的脚本标签中的所有内容都是PCDATA(已解析的字符数据),所以您必须转义结束标记像这样:“” – some 2008-12-23 08:30:56
应该是DOM组装,这使得第二个点未尝试 – annakata 2008-12-23 08:45:21