所以我写了一个简单的指令,它拦截图像的 404 并在第一个图像加载失败时回退到另一个图像。
效果很好,但我遇到了一些返回 404 状态代码但仍返回正文中的图像(例如 Google+)的 URL 的问题。
如果你想看看代码示例在这里https://jsfiddle.net/4cjb5srh/1/
angular.module('test', [])
.directive('imgMissing', [function() {
return {
restrict: 'A',
link: function(scope, element, attrs) {
element.bind('error', function() {
console.log('image missing');
});
}
}
}]);
在此示例中,Google+ 图片不会触发错误,但linkedin 图片会触发。我尝试使用 jquery .error() 而不是 jqlite bind('error') 但没有解决问题。
编辑:JimTheDev 指出,如果 ngSrc 路径解析为 404,这可能是同一个问题,有没有办法回退到默认值?. 我的问题和其他问题都将退回到 404,但是这个问题特定于返回 404但未触发错误的情况(当响应类型由 kwan245 如下所述指定时)。