在.js文件中包含.js文件
这个问题在这里已经有了答案:
我基本上是这样做的,创建一个新元素并将其附加到<head>
var x = document.createElement('script');
x.src = 'http://example.com/test.js';
document.getElementsByTagName("head")[0].appendChild(x);
您也可以使用onload
事件来附加每个脚本,但请进行测试,我不太确定它是否可以跨浏览器使用。
x.onload=callback_function;
浏览器加载时间的最佳解决方案是使用服务器端脚本将它们全部加入到一个大的.js文件中。 确保gzip / minify最终版本。 单一请求 - 很好,紧凑。
或者,您可以使用DOM来创建一个<script>
标记并在其上设置src属性,然后将其附加到<head>
。 如果您需要等待该功能加载,则可以通过该脚本标记上的load
事件来调用JavaScript文件的其余部分。
该函数基于jQuery $.getScript()
function loadScript(src, f) {
var head = document.getElementsByTagName("head")[0];
var script = document.createElement("script");
script.src = src;
var done = false;
script.onload = script.onreadystatechange = function() {
// attach to both events for cross browser finish detection:
if ( !done && (!this.readyState ||
this.readyState == "loaded" || this.readyState == "complete") ) {
done = true;
if (typeof f == 'function') f();
// cleans up a little memory:
script.onload = script.onreadystatechange = null;
head.removeChild(script);
}
};
head.appendChild(script);
}
// example:
loadScript('/some-other-script.js', function() {
alert('finished loading');
finishSetup();
});
没有直接的做法。
你可以做的是按需加载脚本。 (再次使用类似于伊格纳西奥提到的东西,但更清洁)。
检查此链接的多种方式来做到这一点:http://ajaxpatterns.org/On-Demand_Javascript
我最喜欢的是(总是不适用):
<script src="dojo.js" type="text/javascript">
dojo.require("dojo.aDojoPackage");
谷歌的封闭也提供了类似的功能。
链接地址: http://www.djcxy.com/p/7329.html