image.complete始终返回true

问题描述 投票:1回答:1

我想在加载图像时做一些逻辑并且它不在浏览器缓存中。问题是,使用jQuery中的complete boolean总是返回true - 即使图像不在浏览器缓存中。代码段:

var elem = $('.my-img');
console.log(elem.prop('complete'));

这总是在Chrome和Firefox的控制台中都记录下来。有没有变通办法,或者我使用的值不正确?

javascript jquery
1个回答
4
投票

...加载图像时,它不在浏览器缓存中...

据我所知,没有办法检查图像是否在缓存中。 complete没有告诉你;它告诉你第一部分(大部分),img元素是可用的(例如,图像已被加载,这意味着它可能在缓存中)或被破坏(或a couple of other things)。


这可能是一个切线:

你的代码正在检查与complete选择器匹配的第一个img的.my-img标志。显然,图像已完成(已损坏或已加载)。如果你想检查匹配那个选择器的所有图像,你需要一个某种循环,也许是map

var flags = $(".my-img").map(function() { return this.complete; }).get();

当然,当你获得它时,该数组中的任何false标志都可能过时,因为图像是使用JavaScript代码加载到带外的。

© www.soinside.com 2019 - 2024. All rights reserved.