IE9 显示错误的 complete
属性,其中包含以下内容:
$("<img/>",{src:"http://farm2.static.flickr.com/1104/1434841504_edc671e65c.jpg"}).each(function(){console.log(this.complete);});
如果您在浏览器控制台中运行此代码(请留出足够的时间来加载图像),然后再次运行它。 IE9 是我测试过的唯一第二次显示 false 的浏览器。从一些简单的谷歌搜索来看,这似乎是一个已知的错误。 如果有人有解决方法,我需要一个解决方法。
这可能是一个计时问题,因为让上面的代码设置一个全局变量:
var img = $("<img....
然后测试该变量的属性会给出不同的结果:
img[0].complete === true
和
img[0].readyState === "complete"
必须有其他方法来获取此信息。任何想法...谢谢!
最佳答案
我用这个:
function doWhenLoaded(obj,callback) {
if($.browser.msie) {
var src=$(obj).attr("src");
$(obj).attr("src","");
$(obj).attr("src",src);
}
$(obj).one("load",callback).each(function(){
// alert(this.readyState+" "+this.src);
if(
this.complete
|| this.readyState == "complete"
|| this.readyState == 4
|| ($.browser.msie && parseInt($.browser.version) == 6)
) {
$(this).trigger("load");
}
});
}
示例:
doWhenLoaded("#main_background_img",function(){
$("#main_background_img").slideDown(1000);
});
关于javascript - 如何判断图像何时已在 IE9 的浏览器缓存中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8348017/