如何从另一个JavaScript文件加载一个JavaScript文件,如CSS?在CSS中我们使用write @import url("mycss.css");.
有没有办法在JavaScript中做到这一点?
mus*_*ead 48
Javascript中没有@ import-ish函数/方法,但您只需将脚本附加到<head>标记,如下所示:
var newScript = document.createElement('script');
newScript.type = 'text/javascript';
newScript.src = '/path/to/js/file';
document.getElementsByTagName('head')[0].appendChild(newScript);
Run Code Online (Sandbox Code Playgroud)
或者就像埃德加在我之前提到的那样你可以使用jQuery.
Edg*_*ado 31
是.如果您想要纯JavaScript,则必须动态创建script标记,并将其附加到文档中.
是.如果使用jQuery库,则可以使用该$.getScript方法.
$.getScript("another_script.js");
Run Code Online (Sandbox Code Playgroud)
fal*_*tro 18
仅仅因为没有人提到它,还有另一种选择,它不需要任何花哨的库或棘手的编码document.write.原则上,它看起来像这样,虽然请参阅下面的警告:
document.write('<script src="myscript.js" type="text/javascript"></script>');
Run Code Online (Sandbox Code Playgroud)
这将在完全解析脚本标记时执行,如果您将脚本标记放在头部,新脚本标记也将在执行一个标记之后的头部.注意直接执行它而不是在加载文档时(如在$(function(){})回调中.这是我使用的:
(function(){
function load(script) {
document.write('<'+'script src="'+script+'" type="text/javascript"><' + '/script>');
}
load("script1.js");
load("script2.js");
load("etc.js");
})();
Run Code Online (Sandbox Code Playgroud)
封闭函数就是不污染全局命名空间.
警告(以及为什么上面分解的'脚本')脚本标记中可能没有结束脚本标记,HTML解析器不知道它是脚本的一部分.关于这个问题还有另外一个问题.
除了eval字符串的能力之外,Javascript 本身不提供任何模块化帮助。但这是一个足够普遍的需求,大多数大型 javascript 框架都提出了自己的解决方案,最近,在requirejs项目中已经努力标准化这些 API 。如果您使用的是 Dojo 或 jQuery 之类的框架,您可能最好学习使用它们的工具,但如果不是,requirejs则它是一个轻量级的独立工具。你基本上只需添加
<script data-main="scripts/main" src="scripts/require.js"></script>
Run Code Online (Sandbox Code Playgroud)
到您的<head>部分,然后将您自己的 javascript 放入一些这样的包装器代码中(从require.js网站上窃取):
require(["helper/util"], function() {
//This function is called when scripts/helper/util.js is loaded.
require.ready(function() {
//This function is called when the page is loaded
//(the DOMContentLoaded event) and when all required
//scripts are loaded.
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
46537 次 |
| 最近记录: |