动态插入的脚本标记未按正确顺序执行

时间:2015-09-11 03:54:22

标签: javascript jquery html

以下是我的HTML代码片段:

...

<script src=".../jquery.min.js"></script>

<script id="foo">
    if (!window.jQuery) {
        var jquery = document.createElement("script");
        jquery.src = ".../jquery.min.js";
        var self = document.getElementById("foo");
        self.parentNode.insertBefore(jquery, self.nextSibling);
        console.log("haha");
    }
</script>

<script>
    console.log("hehe");
</script>

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

第一个脚本标记是jquery CDN。 脚本标记的目的是id&#34; foo&#34;如果CDN失败,它会在加载以下引导程序js文件之前加载jquery文件的本地副本。

但是,在bootstrap js文件之前不会以某种方式执行插入的jquery文件。我尝试将console.log("wow")放在该本地jquery文件中。控制台中的结果是"haha", "hehe", some error message from bootstrap js file, "wow"。观察DOM,插入的jquery标记确实出现在"hehe"脚本之前,我想知道为什么它没有以正确的顺序执行,是否有更好的方法来实现我的目标?

0 个答案:

没有答案