javascript - 使用jQuery修改样式时,能否捕获到HTTP错误?

标签 javascript jquery error-handling

如果我使用jQuery来设置页面的背景图像,如下所示:

$('body').css({
    "background-image": 'url(' + myImageUrl + ')'
});

如何检测和处理可能从图像URL返回的HTTP错误(500、503、404等)?

我确实找到了一个注册回调的jQuery jQuery .error()方法,但在1.8中已将其标记为已弃用,而没有指示应该用什么代替它。 (无论是否赞成,我似乎也无法使其正常工作。)

根据下面的评论和答案,我尝试了这种变体,它似乎奏效了,但答案却不尽人意。有什么不好的理由吗?
$('<img>').error(function(obj) {
    alert('error');
}).load(function() {
    $('body').css({
        "background-image": 'url(' + myImageUrl + ')'
    });
}).attr('src', myImageUrl);

最佳答案

尝试这个

jQuery的

Live Demo

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;

关于javascript - 使用jQuery修改样式时,能否捕获到HTTP错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18593492/

相关文章:

javascript - jQuery Waypoints 仅处理具有指定类的第一个元素

javascript - ionic 框架问题中的ui-router

javascript - 从 JavaScript 中获取值(value)

javascript - 队列.js : difference between array of functions & array of closures?

jquery - 如何使用jquery返回匹配元素ID

java - 处理多种类型的错误

android - 处理RxJava的onErrorReturn和OnErrorNotImplementedException

error-handling - 使用Global.aspx页面进行错误报告

javascript - IE 7/8 绝对定位元素不能下降超过某个点 JS/Jquery

javascript - 使用 JQuery $(...).val (""清除包含 5 个或更多字段的表单时,IE11 崩溃)