Follow us on Twitter
Astuces Templates Forcer IE8 à utiliser le mode compatibility IE7


Forcer IE8 à utiliser le mode compatibility IE7

ie8_logoSi votre site ne s’affiche pas correctement avec IE8, sachez qu’il existe une solution autre que celle d’adapter le template de votre site Joomla afin de le rendre compatible avec la version IE8.

En effet, dès la sortie de IE8 de nombreux sites qui fonctionnaient correctement auparavant s’affichaient bizarrement ou avec des erreurs sur ce navigateur.

Heureusement l'équipe de Microsoft avait prévu le coup ,-) ! En effet, IE8 vous permet d’activer le mode compatibility IE7 afin de faire en sorte que tous les sites visités avec IE8 s’affichent comme si vous utilisiez le navigateur IE7.

Soit l’utilisateur active ce mode dans les options du navigateur, soit vous informez IE8 au travers de votre site d’activer cette option. Dans ce tutoriel nous allons voir ensemble comment au travers du template de votre site Joomla informer IE8 d’activer cette option.

La première solution est relativement simple puisqu’il faut simplement insérer la ligne ci-dessous dans le HEADER de votre template:

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

Dans la plupart des templates Joomla, la partie HEADER se trouve dans le fichier index.php du template. Il vous faut donc rechercher dans le fichier index.php ce texte <header> puis juste en dessous, coller la ligne de code ci-dessus. Il ne vous reste plus qu’à sauvegarder votre fichier le travail est terminé, enfin pas tout à fait….

Pour les puristes, il y a moyen de faire tout ça un peu plus proprement. En effet, le code que nous avons ajouté sera visible avec tous les navigateurs ce qui est complètement inutile.

Pour éviter ça, nous pouvons ajouter le code CSS de détection d’un navigateur Internet Explorer:

<!--[if IE 8]>
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<![endif]-->

La condition <!--[if IE 8]> signifie : si le navigateur utilisé pour accéder à mon site est IE8 alors exécute les lignes suivantes jusqu'à la ligne <![endif]-->.

Dans le cas où vous devez effectuer un test de navigateur autre que Internet Explorer, il existe dans le framework Joomla une class JBrowser vous permettant de récupérer le navigateur utilisé ainsi que la version de celui-ci. Voici un exemple de code qui vous permet d’effectuer le même test contrôle de la version du navigateur Internet Explorer :

jimport('joomla.environment.browser');
$browser = JBrowser::getInstance();
$ie8 = ($browser->getBrowser() == 'msie' &amp;&amp; $browser->getVersion() == '8.0') ? true : false;
if($ie8 == true) {
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
}


Pour plus d’information concernant cette class, veuillez accéder à la page officielle de description de JBrowser.


7 Commentaire

  1. Salut je viens de lire cet article. Mais moi mon problème est différent. En faite mon site s'affiche correctement sur IE8 Mais c'est sur IE7 qu'il y a le problème. Alors rendre IE7 compatible à IE8? Le chemin inverse de ce que vous venez de montrer. Merci
  2. Navré de vous décevoir, mais l'inverse n'est pas possible. En effet, vous ne pouvez pas forcer un navigateur IE avec une version antérieure à la 8 d'afficher le contenu d'une page comme dans IE8.
  3. Bonjour,

    Mon soucis est différent semble t-il : le logo de mon site sur la home page s'affiche très bien sur Firefox mais pas sur IE8, même si je force l'affichage de compatibilité.

    Vous avez une idée ? (template beez à l'origine).

    Merci
  4. Bonjour !
    Moi malgré le fait que j'ai installé le plugin ie compatibilité, je n'arrive pas à afficher sous IE.
  5. Désolé mais j'ai essayé les 2 premières propositions mais ni l'une ni l'autre ne marchent.Pour IE8, le seul palliatif actuel qui marche est d'aller dans le menu outils et de forcer Affichage de compatibilité, c'est bien pour son propre ordi mais pour les autres visiteurs... j'aurais voulu effectivement que ce soit forcé par le code proposé.Si quelqu'un a réussi la manip je suis preneur.
    Merci
  6. Moi non plus, j'ai intégré le code proposée dans mon template mais la solution proposée ne marche pas pour IE8, cela ne change rien. Pour l'instant la seule façon est de forcer la compatibilité IE7 sur le navigateur, c'est embêtant.
  7. moi ca a fonctionne

Ajouter un commentaire


    • >:o
    • :-[
    • :'(
    • :-(
    • :-D
    • :-*
    • :-)
    • :P
    • :\
    • 8-)
    • ;-)

     

    Dernières astuces

    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    Formulaire identification