Bei der Webentwicklung stoßen wir häufig auf Szenarien, in denen Bilder aufgrund defekter Links oder Serverfehler nicht geladen werden können. Mit dem onerror-Attribut eines img-Elements können wir solche Situationen bewältigen, indem wir ein alternatives Bild zur Anzeige angeben. Benutzer haben jedoch Inkonsistenzen in der Funktionalität verschiedener Browser gemeldet, insbesondere in Chrome und Mozilla.
Um das Problem zu veranschaulichen, betrachten wir den folgenden Codeausschnitt:
<code class="html"><img src="invalid_image.jpg" onerror="this.src='alternate_image.jpg';"></code>
Dieser Code versucht dies Laden Sie ein Bild aus einer ungültigen Quelle. Wenn das Bild nicht geladen werden kann, sollte der onerror-Handler ausgelöst werden und das defekte Bild durch das angegebene alternative Bild ersetzen. Benutzer haben jedoch festgestellt, dass dieser Ansatz in anderen Browsern als Internet Explorer nicht funktioniert.
Der zugrunde liegende Grund für dieses Verhalten ist, dass Browser das onerror-Ereignis unterschiedlich behandeln. Einige Browser wie Chrome und Mozilla lösen das Ereignis mehrmals aus, wenn das alternative Bild nicht geladen werden kann, was zu einer Endlosschleife führt. Um dies zu verhindern, müssen wir den onerror-Handler nach dem ersten Versuch mithilfe des folgenden überarbeiteten Codes aufheben:
<code class="html"><img src="invalid_image.jpg" onerror="this.onerror=null;this.src='alternate_image.jpg';"></code>
Durch das Aufheben des onerror-Handlers stellen wir sicher, dass das Ereignis nur einmal ausgelöst wird, wodurch die Endlosschleife verhindert wird . Dieser Ansatz funktioniert konsistent in mehreren Browsern, einschließlich Chrome, Mozilla und Internet Explorer.
Das obige ist der detaillierte Inhalt vonWarum verhält sich das Attribut „onerror' für Bilder in Chrome und Mozilla unterschiedlich?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!