1

そこで、画像の 404 をインターセプトし、最初の画像の読み込みに失敗したときに別の画像にフォールバックする簡単なディレクティブを作成しました。

非常にうまく機能しますが、404 ステータス コードを返しても本文に画像が返される URL で問題が発生しています (Google+ など)。

コードのサンプルをご覧になりたい場合は、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+ 画像ではエラーは発生しませんが、リンクされた画像では発生します。jqlite bind('error') の代わりに jquery .error() を使用しようとしましたが、問題は解決しませんでした。

編集: JimTheDev は、ngSrc パスが 404 に解決される場合と同じ質問かもしれないと指摘しました。デフォルトにフォールバックする方法はありますか? . 私とこの他の質問はどちらも404にフォールバックすることですが、これは404が返されたがエラーがトリガーされなかった場合に固有のものです(以下でkwan245によって説明されているように応答タイプが指定されている場合)。

4

1 に答える 1