我一直试图让这个工作,并没有100%的成功,基本上试图加载图像,如果源不存在尝试第二个图像,直到它达到默认值。Javascript检查图像加载源
我一直在尝试基于this question的解决方案,但是我没有使用jQuery,因此接受的解决方案对我来说没有用,所以尝试使用第二种解决方案,该解决方案几乎可行,但似乎不是(如果这是有道理的?)。我可以让它测试我们需要的第二个图像,但是它似乎没有再次触发onload事件。
function topTenImages(){
var topTenDiv = document.getElementById('toptenimg');
var topTenImg = new Image();
var ac = "tryout";
var imageOrder = new Array(
"/images/codespec/banners/"+ac+"_topten.gif",
"/images/codespec/banners/"+ac+"_topten.jpg",
"/images/banners/default_topten.png",
"/images/banners/default_topten.jpg"
);
var errorCnt = 0;
topTenImg.src = domainResources+imageOrder[errorCnt];
topTenImg.onLoad = new function(){
if(!checkImage(topTenImg)){
if(errorCnt < imageOrder.length){
var io = imageOrder[++errorCnt];
topTenImg.src = domainResources+io;
}
}
}
topTenDiv.appendChild(topTenImg);
}
是的,我知道,我们可以做的PHP/Perl的/等本服务器端,但我们正试图限制我们的输出头,所以这似乎是做的最好的方式。 (欢迎替代品)。我的另一个想法是将它封装在数组的for循环中,并且每次创建一个新对象。但这似乎更有意义。
感谢, 精神科
有点OT:从'new function'中删除'new'。你只能在'Function'(注意大写)*构造函数*中使用'new',这在这里很少使用,也不适用。你不要在'function'声明中使用它。 – 2010-01-18 14:38:16
谢谢,我总是感到困惑与什么时候和不使用新的:) – Psytronic 2010-01-18 15:56:32