javascript - 如何判断图像何时已在 IE9 的浏览器缓存中?

标签 javascript jquery internet-explorer

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/

相关文章:

IMG 元素中的 CSS 背景图像未在 IE 中显示

javascript - 我们可以通过 Graph API 发送 "Notifications App"吗?

javascript - jQuery Accordion 打开后立即关闭

javascript - 如果 URL 具有 a/directory/listing,则将事件类添加到菜单 "parent"项

javascript - 我可以克隆、编辑和追加一个 div 吗?

javascript - IE11 Javascript : let [array] of object. 条目 "SCRIPT1010: Expected identifier"错误

c# - WebBrowser Navigate 和 InvokeScript 的流程

javascript - 谁能发现这个 SVG/Javascript 函数哪里出了问题?

javascript - 如何使用 JS 和 JQuery 在表格中显示 JSON 数据(没有正确的标签)?

html - href Internet Explorer 上的指针事件