设置<img/>和<script>的src时的不同行为

时间:2015-09-28 09:44:11

标签: javascript dom script-tag

如果您设置分支新 img 元素(或 Image 对象)的 src 属性,浏览器会为您提取该图像onload事件在某个时刻被触发。但是,这似乎不适用于 script 元素。在脚本附加到文档之前,脚本不会加载,这也会触发脚本的执行。我找不到关于这种行为的文档,我想知道它是否是一个标准的东西。我也想知道有没有办法说服 script 表现得像 img

&#xA;&#xA;

&#xD;&#xA;
&#xD;&#xA;
  var script = document.createElement('script');&#xD;&#xA; script.src ='https://code.jquery.com /jquery-2.1.4.js';
script.onload = function(){console.log('script loaded'); &#xD;&#xA;&#xD;&#xA;&#xD;&#xA; var img = document.createElement('img');&#xD;&#xA; img.src =' http://www.joomlaworks.net/images/demos/galleries/abstract/7.jpg';
img.onload = function(){console.log('image loaded'); }  
&#的xD;&#XA;
&#的xD;&#XA;
&#的xD;&#XA;

&#XA;& #xA;

只有图像加载在控制台中打印。

&#xA;

1 个答案:

答案 0 :(得分:0)

我所能想到的只是使用例如window.fetch()(需要旧版浏览器的polyfill)预取内容:

window.fetch('//code.jquery.com/jquery-2.1.4.js')
.then(function(res) { return res.status;})
.then(function(status) {
  if (status === 200) {
    console.log('ready');
  }
});