为了账号安全,请及时绑定邮箱和手机立即绑定

加载没有“ new Image()”的图像

加载没有“ new Image()”的图像

斯蒂芬大帝 2021-05-18 17:05:58
我正在尝试在JavaScript中加载图片:loadImage(src, img) {  return new Promise((resolve, reject) => {    img.onload = resolve;    img.onerror = reject;    img.src = src;  });}在img之前已经建立,但在DOM但不存在。加载后应将其附加。我的问题:据我了解,实际上并不会加载图像,因为该元素还不是DOM的一部分。我尝试使用new Image(),因为这将在插入DOM之前加载图像源:loadImage(src, img) {  return new Promise((resolve, reject) => {    var tmp = new Image();    tmp.onload = resolve;    tmp.onerror = reject;    tmp.src = src;    img.src = src;  });}然而,这样做两次加载,并感到越野车。我需要保留(和使用)该img元素,因为其他事件处理程序和属性已附加到该元素。加载图像并完成承诺后,我该怎么办?
查看完整描述

3 回答

?
慕丝7291255

TA贡献1859条经验 获得超6个赞

如果我对您的理解正确,那么是否要在加载完成后渲染图像?也许只需在“ loadImage”函数中创建图像,然后在“ onload”中执行适当的附加操作即可。这是我在想的一个例子:


const loadImage = (src, parentEl) => {

const img = document.createElement('img')

img.src = src

img.onload = () => {

  parentEl.appendChild(img)

 }

}


const parentEl = document.getElementById('parent')

loadImage('https://fakeimg.pl/640x360', parentEl)

https://jsfiddle.net/2Lp8hyxf/


查看完整回答
反对 回复 2021-05-27
  • 3 回答
  • 0 关注
  • 281 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信