在图像上使用load()的一个大问题是它只能在IE上全部工作。现在有很多解决方案建议反击这个问题,但不幸的是他们中的大多数都是刺激性的。

为什么IE处理加载()这样

简单,即已经缓存了您的图像,为什么需要将其加载回来?这2个最了解的解决方案是1, 在图像URL的末尾添加随机字符串, 像这样:

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

另一个解决方案是从IF检查高度属性’s not零,图像已加载:

$('img').each(function() {
    if ($(this).height() > 0) {
       our callback
    } else {
       $(this).load(function() {
         our callback
       });
    }
});

这两个解决方案的工作,但它们并不是很好。事实上,这个问题可以以更好的方式解决。

首先使用load()

是的。那’s,当您在JavaScript中创建图像时,在做任何其他内容之前,请使用您的负载功能,即IE将表现与所有其他浏览器一样。

$("<img>").load(function(){
     // 做东西
  }).attr({
	"id":"imgInsert",
	"src":response.url,
	"alt":response.alt.
);

5 thoughts on “在Internet Explorer 8及以下的图像上使用jQuery Load()函数

  1. 谢谢你这篇文章,我’m一个webdeveloper,我真的很喜欢我必须开发一切2次:
    每个好浏览器都是第一次
    每次IEðÿ™的第二次,

  2. $(“”).load(function(){
    // do stuff
    }).attr({
    “id”:”imgInsert”,
    “src”:response.url,
    “alt”:response.alt
    );

    这不是’t work in ie

评论被关闭。