2

是否可以通过设置数组和加载器函数在加载窗口时从单独的 Javascript 文件中动态加载函数?

4

2 回答 2

1

最简单的方法是简单地将<script>元素动态添加到 DOM。

<script>
var scripts = [ 'a.js', 'b.js', ... ];
for (var i = 0; i < scripts.length; ++i) {
  document.write('<script src="' + scripts[i] + '"></' + 'script>');
}
</script>

请注意,您只能在DOMContentReady触发事件之前执行此操作。

BTW event Google Closure Library 使用了这种技术。作为旁注,您可能希望将脚本连接到一个文件中,以便节省您自己(和您的用户)的 HTTP 请求并获得更快的页面加载。

这样做的好处在于,脚本会在结束</script>标记之后立即下载和评估,因此您无需等待其他任何内容即可使用它们:

<!-- Let's pretend that a.js defines a function A() -->
<script>document.write('<script src="a.js"></' + 'script>');</script>
<script>
var a = new A();
</script>
于 2012-11-15T19:44:34.323 回答
0

实际上,我不妨将此作为答案而不仅仅是评论,require.js具有您正在寻找的功能,特别是查看文档页面以查看它在浏览器中的使用。

于 2012-11-15T19:41:37.727 回答