我一直在努力让它工作,但没有 100% 成功,基本上是尝试加载图像,如果源不存在,请尝试第二个图像,直到它达到默认图像。
我一直在尝试基于这个问题的解决方案,但是我没有使用 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/et al 来做这个服务器端,但是我们正试图限制我们的传出标头,所以这似乎是最好的方法。(欢迎替代品)。我的另一个想法是将它包装在数组的 for 循环中,并且每次都创建一个新对象。但这似乎更有意义。
谢谢,心理学