修复 IE 中缓存图像的 .load()

Avatar of Chris Coyier
Chris Coyier

.load() 函数在它调用的元素完全加载时触发。它通常用于图像,因为图像可能在 JavaScript 最初运行时尚未完全加载,因此会返回有关它们自身的不正确信息(例如高度/宽度)。大多数浏览器都能很好地处理这个问题。当页面上的图像被缓存时,IE 可能会出现问题。

选择图像并将它的 src 属性更改为追加一个随机参数(基于日期)。这将欺骗 IE 正确地触发 .load() 函数。

myImge = $("<img />")
   .attr("src",anyDynamicSource+ "?" + new Date().getTime());

现在 .load() 函数可以工作了,即使在 IE 中也是如此

$(myImge).load(function() {
   alert("will alert even in IE")
});
参见第一条评论,了解有关使用此技术与 CDN 的警告。