下一个加载了insertBefore(async = false)的脚本会被加载吗?

时间:2016-09-24 14:41:42

标签: javascript

让我把这个脚本直接放在起始头标记之后:

(function () {
     var a = document.createElement('script');
     var m = document.getElementsByTagName('script')[0];
     a.async = !1;
     a.src = 'loader.js';
     m.parentNode.insertBefore(a, m);
 })();

我可以确定,在上面的功能块之后会立即执行loader.js吗?

尽管在浏览器正在执行的当前位置之前插入了loader.js的加载。

1 个答案:

答案 0 :(得分:1)

根据MDN

  

脚本插入的脚本在IE和WebKit中异步执行,但是   同步在Opera和4.0之前的Firefox中。在Firefox 4.0中,异步   对于脚本创建的脚本,DOM属性默认为true,因此   默认行为与IE和WebKit的行为相匹配。请求   脚本插入的外部脚本按插入顺序执行   document.createElement("script").async评估的浏览器   true(例如Firefox 4.0),在您想要的脚本上设置.async=false   维持秩序。