javascript - 加载图像时的触发方法(Internet Explorer)

标签 javascript vue.js vuejs2

我想在加载图像时触发一个方法。不幸的是,.load 不适用于 Internet Explorer 中的图像。有某种解决方法吗?

这是我的代码:

<img
  ref="image"
  :src="src"
  :alt="alt"
  @load="onLoad"
/>

脚本:

methods: {
  onLoad() {
    console.log('trigger me when image has fully loaded');
  },
}

最佳答案

问题在于,即使图像元素尚未附加到 DOM 但定义为未附加的 img 元素,IE 也会加载图像。一旦设置了 src 属性,加载就会开始。
Hook 很可能在​​元素附加到 DOM 后绑定(bind),这会导致它错过实际的onload 事件,因此它永远不会被触发。

解决方案可能是为 Internet Explorer 在其中硬编码一个 onload 处理程序。

<img onload="
          var event = new Event('imageloaded',{
                                          currentTarget: this
                                 });
          document.body.dispatchEvent(event);">

这将在加载图像的 body 元素上触发一个事件。

关于javascript - 加载图像时的触发方法(Internet Explorer),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51082169/

相关文章:

javascript - 使用 axios 响应在 vuejs 中设置数据对象

javascript - 从集合中返回一个数组,从字符串创建变量,然后将该数组传递给动态模板助手?

javascript - 从带有 Javascript 变量的列表中生成价格

javascript - 总计一个表格 - HTML/JavaScript

vue.js - 我应该独立版本 Vue.js 单文件组件吗?

javascript - VueJS如何更新选择数据

javascript - 如何通过 Parse REST API 从 _User 中删除用户

javascript - Vue v 绑定(bind) :class not working immediately when changing the binded object's value

javascript - 如何在 v-for (vue.js) 中访问 <slot> 中的项目

vue.js - 在 vueJS 中使用生命周期钩子(Hook)将类添加到主体