Maison  >  Article  >  interface Web  >  Comment déclencher un événement « onload » d'image même lorsque l'image est mise en cache ?

Comment déclencher un événement « onload » d'image même lorsque l'image est mise en cache ?

Susan Sarandon
Susan Sarandonoriginal
2024-10-25 05:07:02411parcourir

How to Trigger an Image `onload` Event Even When the Image is Cached?

Événement de chargement d'image et mise en cache du navigateur

Lors de la création d'une boîte d'alerte après le chargement d'une image, il est courant d'utiliser l'événement .onload. Toutefois, si l'image est déjà mise en cache dans le navigateur, l'événement .onload ne se déclenchera pas. Cela peut présenter un défi si vous souhaitez déclencher une alerte pour toutes les images, quel que soit leur statut de mise en cache.

Solution

Pour résoudre ce problème, il existe deux solutions éprouvées méthodes :

Méthode 1 : définir la propriété onload avant src

Les images générées dynamiquement peuvent déclencher correctement l'événement onload en définissant la propriété onload avant l'attribut src :

var img = new Image();
img.onload = function () {
  alert("image is loaded");
};
img.src = "img.jpg";

Méthode 2 : Utiliser l'événement « load » de jQuery

Avec jQuery, vous pouvez utiliser l'événement « load » pour garantir que l'alerte est déclenchée quelle que soit la mise en cache :

var img = new Image();
// 'load' event
$(img).on('load', function() {
  alert("image is loaded");
});
img.src = "img.jpg";

Ces techniques gèrent efficacement les images en cache et non mises en cache, vous permettant d'afficher l'alerte avec succès dans tous les cas.

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!

Déclaration:
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