Web ページを開くと、行: 0 でスタック オーバーフローが発生するというメッセージが表示されます。次のようにスクリーンショットを作成しました。
分析の結果、Web ページに次のようなコードがあることが判明しました。
<img src="pic.gif" onerror="javascript:this.src='/noPic.gif';" />
分析: 画像が存在しない場合、onerror がトリガーされるため、onerror に特に注意してください。onerror は img に NoPic.gif 画像を指定します。つまり、画像が存在する場合は pic.gif が表示され、画像が存在しない場合は noPic.gif が表示されます。しかし、ここで問題が発生します。noPic.gif が存在しない場合、onerror がトリガーされ続け、ループが発生するため、エラーが発生します。
注: 画像は存在するがネットワークがスムーズでない場合も、エラーが発生する可能性があります。
解決策: まず、onerror コードを削除するか、onerror コードを別のコードに変更するか、onerror 内のイメージが十分に小さく存在することを確認します。
2 番目のタイプ:
<script type="text/javascript">
<!--
関数 nofind(){
var img=event.srcElement;
img.src="../../../sys/common/image/fileoperation/icon/default.gif";
img.onerror=null; ビートを継続しないように制御します。
}
//見つからない場合はイベントを使って一つずつ取得
//-->
</script>
<td align="center"><img src="../../../sys/common/image/fileoperation/icon/${file.suffix }.gif" onerror="nofind();" / >${ファイル名}</td>
3 番目のタイプ:
2 つの <img /> を使用します
<style type="text/css">
隠れた {
表示: なし。
}
</スタイル>
<img src="xxx.jpg" onerror="this.class='hidden';xx.class=''" />
<img src="xxx.jpg" />