IE上的图像加载事件

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

除了在IE中,方法.load()和.error()始终有效。 我一直在寻找,我发现了这个:

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

将查询字符串添加到图像,始终从服务器加载,并且.load()和.error()方法正常工作,但是网站太大了,我真的无法每次都从网站加载所有图像服务器,无需从缓存加载。

任何关于如何使这个方法工作的想法,无需每次从IE服务器加载服务器的负载,或其他方式检查图像是否已正确加载或在IE中工作?

提前致谢

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

但有一种解决方法是每个试图在几年前用javascript创建图像库的人都知道的:)

Image DOM元素具有一个属性.complete ,指示图像是否已加载。 您可以在脚本加载时检查此属性。 如果图像在缓存中,img.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脚本,然后如果找不到图像,则提供图像未找到图像