是否可以.js
同步调用文件,然后立即使用它?
<script type="text/javascript">
var head = document.getElementsByTagName('head').item(0);
var script = document.createElement('script');
script.setAttribute('type', 'text/javascript');
script.setAttribute('src', 'http://mysite/my.js');
head.appendChild(script);
myFunction(); // Fails because it hasn't loaded from my.js yet.
window.onload = function() {
// Works most of the time but not all of the time.
// Especially if my.js injects another script that contains myFunction().
myFunction();
};
</script>
这被简化了。在我的实现中,createElement东西在一个函数中。我考虑过要在函数中添加一些内容,以检查在返回控件之前是否实例化了某个变量。但是,仍然存在在我无法控制的其他站点包含js时该怎么办的问题。
有什么想法吗?
编辑:
我已经接受了最佳答案,因为它可以很好地说明正在发生的事情。但是,如果有人对如何改进它有任何建议,我欢迎他们。这是我想做的事的一个例子。
// Include() is a custom function to import js.
Include('my1.js');
Include('my2.js');
myFunc1('blarg');
myFunc2('bleet');
我只是想避免过多地了解内部知识,而只能说:“我希望使用此模块,现在我将使用其中的一些代码。”
eval()
所有内容时,将按给定的顺序存储每个文件,否则只需存储响应即可)。