在.js文件中使用外部javascript文件

在.js文件中使用外部javascript文件,javascript,Javascript,我想在另一个javascript文件中使用外部javascript文件。例如,我可以将所有全局变量存储在globals.js文件中,然后从网站logic.js调用。然后在index.html中插入标记。如何在logic.js中使用globals.js?只要确保index.html中引用了这两个文件。document.write(“”); document.write('<script type="text/javascript" src="globals.js"></scrip

我想在另一个javascript文件中使用外部javascript文件。例如,我可以将所有全局变量存储在globals.js文件中,然后从网站logic.js调用。然后在index.html中插入标记。如何在logic.js中使用globals.js?

只要确保index.html中引用了这两个文件。

document.write(“”);
document.write('<script type="text/javascript" src="globals.js"></script>');

编辑:实际上,这可能不适用于您的目的,因为在logic.js完成之前,无法访问global.js变量。您可以将logic.js包装在一个函数中,该函数在global.js加载后调用。否则,我认为没有办法满足您的要求。

Javascript没有任何隐式的“包含此其他文件”机制,比如css的@include。您只需在标记中的逻辑文件之前列出全局文件:

 <script type="text/javascript" src="globals.js" />
 <script type="text/javascript" src="logic.js" />


如果在触发逻辑文件中的任何内容之前保证全局变量可用,则可以在调用init()或任何函数之前执行慢速轮询循环,以查看某个特定变量是否可用。

也可以执行以下操作:

function loadExternalJS(TARGET_URL){
var xhr = window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") : new XMLHttpRequest();
xhr.open('GET', TARGET_URL, false);
xhr.send(null);
var code = xhr.responseText;
var dScript = document.createElement('script');
try {
dScript.appendChild( document.createTextNode(parsed) );
document.body.appendChild(dScript);
} catch(e) {
dScript.text = parsed;
document.getElementsByTagName('head')[0].appendChild(dScript);
}
xhr = null;
$(document).ready(function(){
    $('body').append($('<script src="/path/to/script/foo.min.js"></script>'));
});
$(文档).ready(函数(){
$('body')。追加($('');
});

在需要引用包含的js文件中的某些内容之前,只需使用该行。

顺序很重要,但正如Marc所说。谢谢,这很好,只是出于好奇,有没有办法不在html中使用标记,而仍然引用其他外部js文件?作为轮询循环的替代,您可以指定global.js在加载时调用的函数引用,然后让logic.js将该引用设置为其init()函数。当然,您必须包含代码以确保init()函数不会被调用两次。可以使用javascript,请检查我的答案。这是可行的,但前提是OP的logic.js解析不依赖于globals.js中定义的任何内容。假设他实例化了在globals中创建的某个对象。如果globals还没有加载,那将杀死logic.js。当然,使用jquery的ready()或mootools domready完成适当的init()函数可以解决这个问题。该脚本会暂停处理,直到浏览器加载该脚本。