我的图像位于另一台服务器上(不同的域名,因此我无法使用javascript进行检查),我希望fancybox跳过图像,如果加载错误,则转到下一个图像。这可能吗?
答案 0 :(得分:0)
这里的基本要素是你需要确保你可以通过确保服务器按照你的预期做出响应来实现这一点。所以我使用你的gravatar和我的测试,以及YUI框架来执行实际请求(通过jquery中的json请求)。
var images = ["https://en.gravatar.com/userimage/3532627/52159e585800d69265e0a1819c4dde54.jpg?size=80","http://www.gravatar.com/avatar/e08d91a83ce8dd7b88aaaae4aec58074?s=128&d=identicon&r=PG"],
imagelen = images.length,
newimages = [];
while(imagelen--) {
var url = images[imagelen];
$.getJSON("http://query.yahooapis.com/v1/public/yql?"+
"q=select%20*%20from%20html%20where%20url%3D%22"+
encodeURIComponent(url)+
"%22&format=xml'&callback=?",
function(data){
console.log(data);
if(data.results[0]){
// sweet
newimages.push(images[imagelen]);
images.splice(imagelen,1);
if (images.length === 0) { // last one, fire callback
doFancyBoxStuff();
}
} else {
// d'oh!
images.splice(imagelen,1);
if (images.length === 0) { // last one, fire callback
doFancyBoxStuff();
}
}
}
);
}
function doFancyBoxStuff() {
console.warn("fired callback");
}