3

クロムと IE に表示される十字記号の問題に直面している画像は 、外部の Java スクリプト ファイルから必要なシナリオです (このようなものが必要です)。 ここに画像の説明を入力

画像タグがソースから画像を見つけられない場合、十字アイコンを持つ最初の画像。mozilla はこれを非常にスマートに処理しますが、chrome と IE では望ましくない十字アイコンが表示されます..

私は一般的ではない解決策を見つけます。画像がすべての画像タグで指定されたURLから画像を取得しない場合、透明な画像のURLを渡す必要があります..このようなもの

<img src="i/ibm.png" onerror="this.src='i/1x1trns.png';">

しかし、私のページには20を超える画像があり、プロジェクト全体では200を超えるため、その場合、単一の外部javascriptファイルからこれを処理したい...

この問題について知っている人は、解決策を教えてください...協力のThnx

4

2 に答える 2

1
var imgs = document.getElementsByTagName('img');

for (var i = 0; i < imgs.length; i++) {
    (function(img_elem) {
        var img = new Image();
        img.src = img_elem.src;
        img.onerror = function() {
             img_elem.src = 'i/1x1trns.png';
        };
    })(imgs[i]);
}

http://jsfiddle.net/Ypa7N/

于 2013-02-05T11:42:22.027 に答える
1

<head />タグで jQuery を定義するのは少し面倒ですが、 に対してこれを行う必要があり$.readyます。独自に記述できる場合$.readyは、<head />.

また

これらの画像を取得する前に、jQuery を追加する必要があります。

このコードを試してください

<body>
    <script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            $("img").on("error", function() {
                $(this).attr("src", "i/1x1trns.png");
            });
        });
    </script>
    <img src="not-a-valid-image.png" alt="Logo not found" />
</body>

私は自分のプロジェクトの1つでこの方法を使用しました。

于 2013-02-05T12:21:17.187 に答える