IE上的图像加载事件

image load event on IE

本文关键字:加载 事件 图像 IE      更新时间:2023-09-26

我正在开发一个网站,我必须将未找到图像的src设置为错误图像。

方法。load()和。error()总是工作的,除了IE。我一直在搜索,我发现了这个:

IE在页面刷新时不调用JQuery .load()函数的问题-追踪到图像缓存

将查询字符串添加到图像中,总是从服务器加载它,并且。load()和。error()方法工作正常,但是站点太大了,我真的不能每次从服务器加载站点中的所有图像,而不从缓存加载。

任何想法如何使工作这种方法,没有从服务器加载每次IE的图像,或其他方式来检查图像是否已正确加载或不在IE工作?

Thanks in advance

这是一个非常古老的错误,实际上在所有现代浏览器中都修复了,除了IE。如果从缓存中获取图像,则不会触发onload事件。

但是有一个解决方法是众所周知的,每个人都试图在几年前在javascript中创建一个图片库:)

Image DOM元素有一个属性.complete,表示图像是否被加载。您可以在脚本加载时检查此属性。如果图像在缓存中,则在页面加载后立即返回true:

$('img').each(function(){
    //this code will not run in IE if image is in the cache
    $(this).on('load', function(){
       checkImage(this);
    });
    //this code will run if image is already in the cache
    if (this.complete) checkImage(this);
});
function checkImage(){
   //your code for checking image
}

您可以访问服务器吗?更好的方法可能是使用.htaccess将对图像的所有请求重写为PHP脚本,然后如果没有找到图像,则提供没有找到的图像image