首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按顺序异步加载JS脚本(等待上一个脚本完成)

按顺序异步加载JS脚本(等待上一个脚本完成)
EN

Stack Overflow用户
提问于 2012-08-27 19:25:35
回答 2查看 2.5K关注 0票数 1

我试图在我的项目中使用GoogleMaps.InfoBox,但是在加载这个脚本之前,必须加载GoogleMaps API。

现在,我有了这个代码来加载所有内容:

代码语言:javascript
运行
复制
/**
 * Load scripts asynchronously
 */
function loadScript() {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.googleapis.com/maps/api/js?key=-MY-KEY-&sensor=true&callback=initialize";
    document.body.appendChild(script);
    var scriptInfoBox = document.createElement("script");
    scriptInfoBox.type = "text/javascript";
    scriptInfoBox.src = "http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox_packed.js";
    document.body.appendChild(scriptInfoBox);
}

但并不总是在加载GoogleMaps API之前比GoogleMaps.InfoBox API加载。

如何加载JS排序,等待上一个JS的完成?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-27 19:49:09

您可以使用脚本的load事件:

代码语言:javascript
运行
复制
function loadScript(callback) {
    var script = document.createElement("script");
    script.type = "text/javascript";
    script.src = "http://maps.googleapis.com/maps/api/js?key=-MY-KEY-&sensor=true&callback=initialize";
    document.body.appendChild(script);
    script.onload = function() {
        var scriptInfoBox = document.createElement("script");
        scriptInfoBox.type = "text/javascript";
        scriptInfoBox.src = "http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox_packed.js";
        document.body.appendChild(scriptInfoBox);
        scriptInfoBox.onload = callback;
    };
}

但是,您需要稍微修改代码,使其成为像这样的跨浏览器安全

票数 4
EN

Stack Overflow用户

发布于 2012-08-27 19:31:11

只需在</body>之前使用常规脚本标记即可。

代码语言:javascript
运行
复制
<script src="http://maps.googleapis.com/maps/api/js?key=-MY-KEY-&sensor=true&callback=initialize"></script>
<script src="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/infobox/src/infobox_packed.js"></script>

默认情况下,浏览器将按照脚本显示的顺序执行脚本。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12148279

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档