Beim Öffnen der Webseite wird ein Stapelüberlauf in Zeile 0 angezeigt. Ich habe einen Screenshot wie folgt gemacht:
Nach der Analyse wurde festgestellt, dass die Webseite Code enthält, der dem folgenden ähnelt:
<img src="pic.gif" onerror="javascript:this.src='/noPic.gif';"
Analyse: Achten Sie besonders auf onerror. Wenn das Bild nicht vorhanden ist, wird onerror ausgelöst und onerror gibt ein NoPic.gif-Bild für img an. Das heißt, wenn das Bild vorhanden ist, wird pic.gif angezeigt, und wenn das Bild nicht vorhanden ist, wird noPic.gif angezeigt. Aber hier kommt das Problem. Wenn noPic.gif nicht existiert, wird onerror weiterhin ausgelöst, was zu einer Schleife führt, sodass ein Fehler auftritt.
Hinweis: Wenn das Bild vorhanden ist, das Netzwerk jedoch nicht reibungslos funktioniert, wird möglicherweise auch ein Fehler ausgelöst.
Lösung: Erstens: Entfernen Sie den onerror-Code oder ändern Sie den onerror-Code in einen anderen; oder stellen Sie sicher, dass das Bild in onerror klein genug ist und existiert.
Zweiter Typ:
<script type="text/javascript">
<!--
Funktion nofind(){
var img=event.srcElement;
img.src="../../../sys/common/image/fileoperation/icon/default.gif";
img.onerror=null; Kontrolle, um nicht weiterzuschlagen
}
// Wenn es nicht gefunden wird, verwenden Sie Ereignisse, um sie einzeln abzurufen
//-->
</script>
<td align="center"><img src="../../../sys/common/image/fileoperation/icon/${file.suffix }.gif" onerror="nofind();" >${file.name}</td>
Der dritte Typ:
Verwenden Sie zwei <img />
<style type="text/css">
versteckt {
Anzeige: keine;
}
</style>
<img src="xxx.jpg" onerror="this.class='hidden';xx.class=''" />
<img src="xxx.jpg" />