javascript - 捕获动态更改其来源的图像的加载事件

标签 javascript jquery

我正在动态更改图像的 src,并希望捕获该图像的加载事件。有什么办法可以做到吗?

最佳答案

几年前,我在第二次设置.src时发现onload事件在某些浏览器(我不记得是哪些)中不可靠。因此,我决定替换图像对象。我将创建一个新的图像对象,设置 onload 处理程序,设置 .src 值,然后在加载时将其插入页面以代替现有图像。

在 JavaScript 中从头开始创建图像时,您可以执行以下操作:

var img = new Image();
img.onload = function() {
    // put your onload code here
};
img.src = "xxx.jpg"

如果您只想更改图像的 .src ,只需在页面中找到 DOM 对象并设置它的 .src 属性即可。

var img = document.getElementById("myImage");
img.src = "xxx.jpg";

如果您想在重置 .src 时 try catch onload 事件(几年前我遇到了可靠性问题,您可以这样做:

var img = document.getElementById("myImage");
img.onload = function() {
    // your code here
};
img.src = "xxx.jpg";

如果您想加载新图像并在加载时用它替换现有图像,您可以这样做:

function replaceImg(oldImage, newSrc) {
    var img = new Image();
    img.onload = function() {
        var parent = oldImage.parentNode;
        parent.insertBefore(img, oldImage);
        parent.removeChild(oldImage);
        // put any other code you want here when the 
        // replacement image is loaded and in place
    };
    img.src = newSrc;
}

并且,您可以这样调用它:

<img id="myImage" src="yyy.jpg">


var oldImage = document.getElementById("myImage");
replaceImg(oldImage, "xxx.jpg");

关于javascript - 捕获动态更改其来源的图像的加载事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12205707/

相关文章:

javascript - 用户在图像顶部绘制形状

javascript - Ckeditor 删除空标签

javascript - 绑定(bind)到流程图.js 中的行

javascript - 使用 jQuery 复制元素

javascript - 如何使用 jQuery 或 Javascript 禁用页面上的元素

javascript - 如何在 css3 动画中围绕椭圆形图像旋转图像?

javascript - sibling 给对象 #<HTMLSelectElement> 没有方法 'each'

javascript - 查找由与中心的 Angular 定义的正方形边缘的坐标

javascript - 没有数据时如何重新设计表格

javascript - 带有 Node 集群模块的 Socket.io