如何在Internet Explorer中检测何时完成渲染图像?

时间:2020-07-14 09:34:17

标签: javascript internet-explorer

我正在尝试使用解码功能准备大图像以将其安装在DOM中,但是Internet Explorer没有解码功能。如何检测Internet Explorer何时解码图像并准备好将其安装在DOM中?

if (bgimageEl.decode) {
 var promise = bgimageEl.decode();
 if (promise) {
  promise.then(function() {
   showElements();
  });
 } else {
  showElements();
 }
}else {

}

1 个答案:

答案 0 :(得分:0)

IE不支持decode()。我认为我们只能使用类似的功能HTMLImageElement.complete来检测图像是否已完全加载。如果是,那么我们显示图像(图像先隐藏)。

示例代码:

var img = document.querySelector('img')

function loaded() {
  img.style.display = 'block';
  alert('loaded')
}

if (img.complete) {
  loaded()
} else {
  img.addEventListener('load', loaded)
  img.addEventListener('error', function() {
    alert('error')
  })
}
<img src="https://i.imgur.com/3q3kNGh.png" style="display:none;" />