【发布时间】:2011-02-04 12:16:51
【问题描述】:
我想在另一个 javascript 文件中使用外部 javascript 文件。例如,我可以将所有全局变量存储在 globals.js 文件中,然后从网站逻辑 logic.js 调用。然后在 index.html 中,我会插入标签。如何在 logic.js 中使用 globals.js?
【问题讨论】:
标签: javascript
我想在另一个 javascript 文件中使用外部 javascript 文件。例如,我可以将所有全局变量存储在 globals.js 文件中,然后从网站逻辑 logic.js 调用。然后在 index.html 中,我会插入标签。如何在 logic.js 中使用 globals.js?
【问题讨论】:
标签: javascript
你也可以这样做:
$(document).ready(function(){
$('body').append($('<script src="/path/to/script/foo.min.js"></script>'));
});
在需要引用包含的 js 文件中的某些内容之前使用该行。
【讨论】:
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;
【讨论】:
Javascript 没有任何隐含的“包含此其他文件”机制,例如 css 的 @include。您只需在标签中的逻辑文件之前列出您的全局文件:
<script type="text/javascript" src="globals.js" />
<script type="text/javascript" src="logic.js" />
如果保证在逻辑文件中的任何内容启动之前全局变量可用,则可以在调用 init() 或任何函数之前执行慢速轮询循环以查看某些特定变量是否可用。
【讨论】:
document.write('<script type="text/javascript" src="globals.js"></script>');
编辑:实际上,这可能不适用于您的目的,因为 global.js 变量在 logic.js 完成之前无法访问。您可以将 logic.js 包装在一个在 global.js 加载后调用的函数中。否则,我认为没有办法按照您的要求进行操作。
【讨论】:
只需确保在您的 index.html 中引用了这两个文件。
【讨论】: