ウィキペディアからいくつかの画像をロードするページがあります。ウィキペディアの画像にはファイル名から計算する必要のあるファイルパスがあり、それを次のファイルに追加する必要がありますhttp://upload.wikimedia.org/wikipedia/commons/thumb/
。
2つの問題があります。
少数の写真では、URLの
/en/
代わりにURLがありますが、いつか/commons/'
を知る方法はありません。一部のリンクは古く、画像を返さないため、醜いコンテナdivが残ります。
そこで、最初に画像を読み込んで、画像にcommons
エラーが発生するかどうかを確認するコードを記述しました。含まれている場合は、をに置き換えcommons
ますen
。次に、画像がまだエラーを表示する場合(画像がまったく存在しないことを意味します)、コードはsrc全体を置き換えて''
divを非表示にします。
これはすべてFFでうまく機能しますが、Chromeではクラッシュします。無限のjquery.min.js:2 Uncaught RangeError: Maximum call stack size exceeded
エラーが発生します。誰かが私のコードの問題を教えてくれて、それを修正するのを手伝ってくれるなら、私は本当に感謝しています!
コードは次のとおりです。
$('#imgid').error(function()
{
$(this).one("error", function() {
$(this).attr('src','');$(this).parent().parent().parent().hide();
}).attr('src', $(this).attr('src').replace("/commons/", "/en/"));
});
TIA!
編集:画像を囲むhtmlは次のようになります:
<div data-id="7551400" class="pin">
<div id="sc7551400" class="scrol">
<a class="PinIm" target="_blank" name="http://upload.wikimedia.org/wikipedia/commons/c/c0/Cage_de_Faraday.jpg" href="">
<img class="PinImageImg" alt="" src="http://upload.wikimedia.org/wikipedia/commons/thumb/c/c0/Cage_de_Faraday.jpg/155px-Cage_de_Faraday.jpg" style="width:155px" id="img-7551400">
</a>
</div>
</div>