设置img属性和onload事件的先后顺序?

let img = new Image()
img.onload = () => {
    alert(1)
}
img.src = src
img.crossOrigin = 'Anonymous'

在IOS微信中,把crossOrigin放在最后,触发了onload事件,但是crossOrigin没有设置成功。
如果把crossOrigin放在前面,则不触发onload事件(PC上chrome可以触发),crossOrigin设置成功。
IOS微信中怎么样的顺序才能既成功设置这两个属性,又触发onload事件呢?

// vue写的,用了zrender这个库
this.zrFront = zrender.init(document.getElementById('front'))
for (let x in data) {
    let img = new Image()
    img.crossOrigin = 'Anonymous'
    img.onload = () => {
    this.zrFront.add(new ImageShape({
      style: {
        x: attribute.x * this.ratioX,
        y: attribute.y * this.ratioX,
        image: img,
        width: attribute.filed_attribute.width * this.ratioX,
        height: attribute.filed_attribute.height * this.ratioX
      },
      z: 0
    }))
}
阅读 5.9k
2 个回答

谢邀,一般的顺序是先设置属性,再设置load事件回调,最后再给src赋值吧,因为给src赋值会直接触发加载动作从而触发load事件。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题