首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >图像readyState总是“加载”

图像readyState总是“加载”
EN

Stack Overflow用户
提问于 2013-11-16 05:16:15
回答 2查看 1.1K关注 0票数 0

我正在加载一组图像,并使用jQuery测试它们何时完成。但是,1图像会显示替代文本。我认为没什么大不了的,只是测试一下错误,但这个错误永远不会被抛出。在进一步检查后,我发现readyState仍然被认为是“正在加载”。我不知道该怎么解决这个问题。

myCode

代码语言:javascript
复制
 $(document).ready(function(){
     setTimeout(evalImages,100);
});
$('img').error(function(){ alert('test'); });

function evalImages(){
     var imgCount = $('.myContainer img').length;
     var loaded=0;
     for(var i =0; i < imgCount; i++){
         if($('.myContainer img').get(i).complete){
              loaded++;
         }
     }
     if( loaded >= imgCount){
           ///My other logic here
     }else setTimeout(evalImages,100);
}

就为了这张图片,我打开了我的开发工具,并完成了

代码语言:javascript
复制
 $('.myContainer img').get(7).readyState
"loading"

由于它仍然在加载,从来没有完成,也没有错误,我不知道如何测试这个问题。

更新:我仍然不知道为什么这一个图像没有改变它的readyState,我很好奇,但作为一个变通办法,我只是在400毫秒的时间延迟后显示所有图像。

EN

回答 2

Stack Overflow用户

发布于 2013-11-23 02:29:57

您可以使用load事件

代码语言:javascript
复制
$(window).on('load', function(){ // ... });

或者,快捷方式

代码语言:javascript
复制
$(window).load(function(){ // ... });

load事件在所有图像完全加载后触发,而不是$(document).ready。此外,如果需要,您可以同时使用readyloadready事件将在load之前触发。

票数 0
EN

Stack Overflow用户

发布于 2016-05-02 17:01:52

此错误存在于IE9和IE10中。一个简单的解决方法是在将img.readyState插入到DOM之后立即执行一个虚拟的img读取。

IE9-IE10-STALE-READYSTATE.html

IE9-IE10-STALE-READYSTATE.html?ie9-ie10-fix

IE11显示的错误是F12调试器模拟IE9,IE10与实际的IE9,IE10不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20010739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档