10
votes

Façon de détecter des images cassées dans JavaScript?

Je dois être capable de détecter si une image est cassée et remplacez par une image par défaut si le lien d'image est cassé. Je sais que je pouvais faire cela avec un proxy d'image, mais j'espérais le faire à la volée avec JavaScript.


1 commentaires

4 Réponses :


17
votes

Je crois que c'est l'événement Onerror du IMG . onerror = fonction () {} si je ne l'ai jamais utilisé.


1 commentaires

Travaille-t-il dans tous les navigateurs? Informations connexes est manquante dans développeur.mozilla.org/en-us / Docs / Web / API / GlobalEventhandlers / ...



5
votes

1 commentaires

Vraiment une façon de faire ça!



0
votes

Exemple de code:

<script language='javascript'>
function defaultImage(img)
{
    img.onerror = "";
    img.src = 'default.gif';
}
</script>
<img alt="My Image" src="someimage.gif" onerror="defaultImage(this);" />


1 commentaires

Dans le cas habituel - cela fonctionnera bien. Mais je suis assez sûr que cela provoquera une boucle infinie si par défaut.gif est également cassé / non trouvé. C'est pourquoi, dans Stackoverflow.com/Questtions/92720 / ... le jeu de réponses alternatifs img.onerror à vide dans la fonction par défautImage



6
votes

Comme tout événement, le Onerror code> se propagera vers le haut sur le DOM, de sorte que vous puissiez créer un gestionnaire générique pour ce type d'erreurs.

<script type="text/javascript">
jQuery(document).bind('error', function(event) {
  console.log(event.target.src);
});
</script>


0 commentaires