如果我使用jQuery设置页面的背景图像,如下所示:
$('body').css({
"background-image": 'url(' + myImageUrl + ')'
});
如何检测和处理可能从图片网址返回的HTTP错误(500,503,404等)?
我确实找到了一个注册回调的jQuery .error()
方法,但它在1.8中被标记为已弃用,并没有指示应该替换它的内容。 (我也似乎无法让它工作,不推荐或不推荐。)
根据评论和下面的答案,我尝试了这种变化,它似乎有效,但答案是降低选票。这有什么不好的原因吗?
$('<img>').error(function(obj) {
alert('error');
}).load(function() {
$('body').css({
"background-image": 'url(' + myImageUrl + ')'
});
}).attr('src', myImageUrl);
答案 0 :(得分:0)
试试这个
的jQuery
var $image = $("<img />");
$image.on("error",function() {
$('body').css({
"background-image": 'url(defaultimage.jpg)'
});
}).on("load",function() {
$('body').css({
"background-image": 'url(' + myImageUrl + ')'
});
}).attr("src",myImageUrl);
JavaScript的:
var image = new Image();
image.onerror=function() {
document.body.style.backgroundImage="url(defaultimage.jpg)"
}
image.onload=function() {
document.body.style.backgroundImage="url("+myImageUrl+")"
}
image.src=myImageUrl;