那个img.complete这个是不是会返回有延迟?我循环一个数组来给img.src赋予地址,当一个图片按照地址是正确的显示了,反而img.complete为false,但是当下一个图片地址是不显示的,img.complete却变成true了:代码如下
for(var i = k; i < 29; i++)
{
j = k;
m=m+1;
if(_e == 8) break;
var img = imgs[_e];
window.alert("_e="+_e+"i="+i);
//if (i == 28) img.onerror = function(){this.parentNode.removeChild(this)}
img.onclick = function()
{
F("divBigPic").innerHTML = "";
var bigImg = this.cloneNode(true);
F("divBigPic").appendChild(bigImg);
}
var aArray =[0,9,10,11,1,12,2,13,14,15,3,16,17,18,4,19,5,20,6,21,7,22,23,24,25,26,27,28];
var g = aArray[i];
var bArray =["酒店外立面","酒店外立面","酒店外立面","酒店外立面","酒店大堂","酒店大堂","大床房","大床房","大床房","大床房","标准房","标准房","标准房","标准房","卫生间","卫生间","酒店餐厅","酒店餐厅","酒店商务中心","酒店商务中心","酒店会议室","酒店会议室","酒店走廊","酒店走廊","酒店自助洗衣房","酒店自助洗衣房","酒店早餐","酒店早餐"];
img.alt = bArray[i];
img.src = "http://211.152.60.234:8080/op/Module_ERP/Images/HotelDisplay/" + HotelCode + "_" + g + ".jpg";
var al=img.complete;
window.alert(al);
if(i == 28 && al == false) img.parentNode.removeChild(img);
else if(al) {_e = _e+1;continue;}
else{img.onerror=function(){m=m-1;l=l+1;};continue;}
}
过该张图片没有关系,即和缓存没有关系!这里要注意,显示与否和img.style.display无关;
JS部分: alert(img.complete);----->false
img.src="图片";
alert(img.complete);------->//如果上面“图片”获取的时间比JS代码顺序执行的时间要常,那么这里就是false,否则就是true;
你有空的话可以看看这个网站或许能帮到你: