mercredi 21 novembre 2012

Nivo.Slider et événement "Load" levé 2 fois

Je viens de résoudre un problème auquel j'étais confronté depuis hier sur un de mes projets : l'événément "Load" se levait deux fois sur les pages de mon site. On pourra dire que c'est un problème classique, auquel nous avons tous été confrontés au moins une fois.

Après les vérifications d'usages (AutoEventWireup...), je suis parti à la recherche de cet élément qui faisait que certaines de mes pages levaient deux fois cet événement. Finalement, mon problème venait d'un module utilisant le script JQuery "Nivo Slider".

Me voilà donc parti à décortiquer le script en question... et là je suis tombé sur l'origine du problème. J'utilise la version 3.1 de ce script, ligne 77 du fichier "jquery.nivo.slider.js" j'ai effectué le correctif suivant :
  • à l'origine : var sliderImg = $('');
  • après correction : var sliderImg = $('');
 Après cette modification, la page ne se chargeait d'une seule fois. Je n'ai pas vu d'effet de bords, à voir si cela ne pose pas de soucis sur certains navigateurs (sous fireFox c'est ok).

Pour la version "compressé" de ce script (fichier "jquery.nivo.slider.pack.js"), une recherche sur le texte  "nivo-main-image" devrait vous permettre de retrouver le "coupable".