在Javascript中检查图像和视频加载失败的正确方法?

在Javascript中检查图像和视频加载失败的正确方法?,javascript,jquery,html,video,canvas,Javascript,Jquery,Html,Video,Canvas,在JS中加载图像以在HTML5画布上绘制的常见示例如下: var canvas = $("#mycanvas")[0]; var context = canvas.getContext("2d"); var img = new Image(); img.src = 'URL HERE'; img.onload = function() { context.drawImage(img, 0, 0); }; 但是我们如何处理图像加载失败的情况? e、 g.使用JQuery加载JSON数据时

在JS中加载图像以在HTML5画布上绘制的常见示例如下:

var canvas = $("#mycanvas")[0];
var context = canvas.getContext("2d");
var img = new Image();
img.src = 'URL HERE';
img.onload = function() {
    context.drawImage(img, 0, 0);
};
但是我们如何处理图像加载失败的情况?

e、 g.使用JQuery加载JSON数据时,有一种处理加载失败的
.fail
方法:

$.getJSON(url)
    .done(function(data, statusText, jqXHR) {
        // data loaded ok
    })
    .fail(function(jqXHR, textStatus, errorThrown) {
        // error loading data - ERROR HANDLING HERE
    })
;
很好,但是在处理图像加载错误时,JS中是否有一些等价的东西? 是否存在类似于
.onload
但在加载失败时触发的其他事件?或者在这两种情况下,
.onload
是否触发

将视频加载到视频标签时出现类似问题:

var videoElement = $("#myvideo")[0];
$("#mvideo").append("<source src='URL HERE' type='TYPE STRING HERE'>");
videoElement.load();
videoElement.play();
var videoElement=$(“#myvideo”)[0];
$(“#mvideo”)。追加(“”);
videoElement.load();
videoElement.play();

i、 e.如何检测负载故障以便添加错误处理代码?

是,使用
onerror
属性:

img.onerror = function() {
    this.src = "DEFAULT SOURCE FOR ERROR LOADED IMAGES";
}

或者,因为这是jQuery,所以这可能更适合:谢谢!我很快就会试试的。该事件是否也适用于视频元素,或者是否存在不同的事件(请参阅问题的后半部分)?干杯