Maison > interface Web > tutoriel CSS > Pourquoi l'attribut « onerror » pour les images se comporte-t-il différemment dans Chrome et Mozilla ?

Pourquoi l'attribut « onerror » pour les images se comporte-t-il différemment dans Chrome et Mozilla ?

Linda Hamilton
Libérer: 2024-11-03 16:42:30
original
502 Les gens l'ont consulté

Why Does the `onerror` Attribute for Images Behave Differently in Chrome and Mozilla?

Résoudre les problèmes de chargement d'images avec l'attribut Onerror

Dans le développement Web, nous rencontrons souvent des scénarios dans lesquels les images ne se chargent pas en raison de liens rompus ou d'erreurs de serveur. L'attribut onerror d'un élément img nous permet de gérer de telles situations en spécifiant une image alternative à afficher. Cependant, les utilisateurs ont signalé des incohérences dans ses fonctionnalités dans différents navigateurs, en particulier dans Chrome et Mozilla.

Pour illustrer le problème, considérons l'extrait de code suivant :

<code class="html"><img src="invalid_image.jpg" onerror="this.src='alternate_image.jpg';"></code>
Copier après la connexion

Ce code tente de charger une image à partir d'une source invalide. Si l'image ne parvient pas à se charger, le gestionnaire d'erreur doit se déclencher, remplaçant l'image cassée par l'image alternative spécifiée. Cependant, les utilisateurs ont constaté que cette approche ne fonctionne pas dans les navigateurs autres qu'Internet Explorer.

La raison sous-jacente de ce comportement est que les navigateurs gèrent différemment l'événement onerror. Certains navigateurs, comme Chrome et Mozilla, déclencheront l'événement plusieurs fois si l'image alternative ne se charge pas, conduisant à une boucle infinie. Pour éviter cela, nous devons annuler le gestionnaire onerror après la première tentative en utilisant le code révisé suivant :

<code class="html"><img src="invalid_image.jpg" onerror="this.onerror=null;this.src='alternate_image.jpg';"></code>
Copier après la connexion

En annulant le gestionnaire onerror, nous garantissons que l'événement ne se déclenchera qu'une seule fois, empêchant ainsi la boucle infinie . Cette approche fonctionne de manière cohérente sur plusieurs navigateurs, notamment Chrome, Mozilla et Internet Explorer.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal