在图像上使用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. );
你应该使用这个.plete或$(这个).prop(‘complete’)而不是高度()。它’S特别用于此目的。
谢谢你这篇文章,我’m一个webdeveloper,我真的很喜欢我必须开发一切2次:
每个好浏览器都是第一次
每次IEðÿ™的第二次,
非常感谢它’工作很好!!!!!!!!!!
谢谢很多ðÿ™,
$(“”).load(function(){
// do stuff
}).attr({
“id”:”imgInsert”,
“src”:response.url,
“alt”:response.alt
);
这不是’t work in ie