我正在动态更改图像的 src 并希望捕获该图像的加载事件。有什么办法可以做到吗?
问问题
3062 次
2 回答
5
几年前,我.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";
如果您想在重置时尝试捕获 onload 事件.src
(几年前我遇到了可靠性问题,您可以这样做:
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");
于 2012-08-30T21:29:21.463 回答
0
// create image object
var image = new Image();
image.onload = function () {
// do stuff
$('#myimageelementid').prop('src', image.src); // set the element in the DOM with this image
}
image.src = "image.jpg"; // will trigger onload when loaded
于 2012-08-30T21:24:45.623 回答