Problème avec jQuery et MSIE 9 (résolu)

By 5 novembre 2011Javascript/jQuery, Tutoriels

Récemment, nous avons eu des problèmes avec des scripts jQuery sous Internet Explorer 9 (le carousel sur notre home). Après avoir cherché pendant un moment quels éléments jQuery pouvaient être en cause, nous avons fini par trouvé une rustine provisoire en attendant une mise à jour de jQuery, puisque c’est là tout l’intérêt de jQuery, à savoir la compatibilité avec tous les navigateurs du monde.

Il se trouve que le nouvel Internet Explorer 9 peut utiliser différents moteurs de rendu. Donc, il nous a suffi de trouver la bonne ligne de code à mettre dans le head pour forcer le navigateur à faire un rendu compatible Explorer 8. Et le tour est joué 😉

Voici la ligne à mettre dans le head de votre page :

<meta http-equiv="X-UA-Compatible" content="IE=8" />

Si vous avez une meilleure solution, n’hésitez pas à utiliser les commentaires.

Un grand merci à BritoWeb et à G.L.

Artcompix

5 commentaires

  • check_ca dit :

    Il serait possible d’imaginer une meilleure solution que celle proposée si le problème technique avait été un minimum exposé…

    • artcompix dit :

      Oui, vous avez raison, je n’ai pas précisé l’objet de mon ressentiment 😉
      Il s’agit en fait du carousel sur la home de notre site qui tourne très bien sous Safari, Firefox et IE7/8. Mais j’ai téléchargé IE9 récemment et là stupeur, les images du carousel s’affichent les unes en dessous des autres…
      Vous pouvez voir le résultat en activant les « Developer Tools (F12) » depuis IE9. Vous modifiez ensuite le « Document Mode : I9 standards ».
      Je ne recopie pas le code source ici vu que vous l’avez dans le source de la page même.
      Merci de votre intérêt
      Cordialement

  • check_ca dit :

    Voilà ce que je constate. Le code ci-dessous ne fonctionne pas comme prévu sous IE9, que ca soit dans index.php ou bien contact.js. La fonction passée en paramètre n’est jamais executée.
    jQuery(document).ready(function() { /* … */ });

    Ca explique le dysfocntionnement. Par contre, je ne sais pas pourquoi les fonctions enregistrées de cette manière ne se lancent pas. Je suis tenté de croire que le problème vient d’ailleurs. Le mieux serait d’essayer de tester en enlevant le maximum de choses (scripts, css, html …) et essayer d’identifier si un element externe empêche le code de se lancer. Ca, je ne peux pas le faire depuis mon poste.

    • artcompix dit :

      Merci beaucoup pour vos tests. Vous aviez raison, ce n’est pas jQuery qui est en cause.
      J’ai trouvé le script qui pose problème. Il s’agit en fait du plugin JW Player.
      Je l’ai enlevé sur une page de test et tout fonctionne à merveille (test)
      Je viens de faire une mise à jour du plugin et ça fonctionne.

      Merci encore et bon dimanche

Laisser un commentaire