Heim >Web-Frontend >CSS-Tutorial >Warum schlägt mein Code zum Ersetzen von Onerror-Bildern in Chrome und Mozilla fehl?

Warum schlägt mein Code zum Ersetzen von Onerror-Bildern in Chrome und Mozilla fehl?

Linda Hamilton
Linda HamiltonOriginal
2024-11-03 16:20:30412Durchsuche

Why does my onerror image replacement code fail in Chrome and Mozilla?

Verwendung des onerror-Attributs für Bilder

Das onerror-Attribut gibt eine Aktion an, die ausgeführt werden soll, wenn ein Bild nicht geladen werden kann. In diesem Fall haben Sie Code bereitgestellt, um das src-Attribut zu ändern und das fehlerhafte Bild durch ein Standardbild zu ersetzen.

Sie sind jedoch auf ein Problem gestoßen, bei dem dieser Code in Chrome und Mozilla nicht funktioniert, obwohl er im IE funktioniert.

Die Antwort liegt darin, dass moderne Browser das Fehlerereignis mehrfach auslösen, wenn auch die im onerror-Handler bereitgestellte Backup-URL ungültig ist. Dies führt zu einer Endlosschleife, da das Ereignis wiederholt ausgelöst wird und das src-Attribut weiterhin geändert wird.

Um dieses Problem zu beheben, können Sie Ihren Code wie folgt ändern:

<img src="invalid_link" onerror="this.onerror=null;this.src='https://placeimg.com/200/300/animals';">

By Wenn Sie this.onerror=null setzen, verhindern Sie, dass das Fehlerereignis erneut ausgelöst wird. Dadurch wird wiederum sichergestellt, dass das Bild nicht endlos ersetzt wird.

Sie können sich auch die Live-Demo unter http://jsfiddle.net/oLqfxjoz/ ansehen, um die Implementierung zu visualisieren.

Das obige ist der detaillierte Inhalt vonWarum schlägt mein Code zum Ersetzen von Onerror-Bildern in Chrome und Mozilla fehl?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn