我希望在加载图像后创建一个警报框,但如果图像保存在浏览器缓存中,则不会触发.onload
事件。
如何在加载镜像时触发警报,而不管该镜像是否已缓存?
var img = new Image();
img.src = "img.jpg";
img.onload = function () {
alert("image is loaded");
}
发布于 2015-07-25 03:52:27
如果已经设置了src,那么甚至在绑定事件处理程序之前,事件就会在缓存的情况下触发。因此,您也应该基于.complete
触发事件。
代码示例:
$("img").one("load", function() {
//do stuff
}).each(function() {
if(this.complete || /*for IE 10-*/ $(this).height() > 0)
$(this).load();
});
发布于 2013-01-03 14:05:05
我今天也遇到了同样的问题。在尝试了各种方法之后,我意识到只需将调整大小的代码放在$(window).load(function() {})
中,而不是document.ready
中,就可以解决部分问题(如果您不是在扩展页面)。
发布于 2017-02-01 16:15:31
我发现你可以在Chrome中做到这一点:
$('.onload-fadein').each(function (k, v) {
v.onload = function () {
$(this).animate({opacity: 1}, 2000);
};
v.src = v.src;
});
将.src设置为自身将触发onload事件。
https://stackoverflow.com/questions/12354865
复制相似问题