【发布时间】:2013-09-03 13:22:48
【问题描述】:
如果我使用 jQuery 来设置页面的背景图像,如下所示:
$('body').css({
"background-image": 'url(' + myImageUrl + ')'
});
如何检测和处理可能从图像 URL 返回的 HTTP 错误(500、503、404 等)?
我确实找到了一个注册回调的 jQuery .error() 方法,但它在 1.8 中被标记为已弃用,没有说明应该用什么来替换它。 (我似乎也无法让它工作,无论是否被弃用。)
根据 cmets 和下面的答案,我尝试了这种变体,它似乎有效,但答案却被否决了。这有什么不好的原因吗?
$('<img>').error(function(obj) {
alert('error');
}).load(function() {
$('body').css({
"background-image": 'url(' + myImageUrl + ')'
});
}).attr('src', myImageUrl);
【问题讨论】:
-
.error()无论如何都不会明白这一点。确保预加载图像并查看它是否加载的唯一方法。之后将其应用于 bg 图像。 -
您总是可以先发出 ajax 请求进行检查,但这会产生可能的开销。
标签: javascript jquery error-handling