Je vous ai présenté dernièrement la possibilité pour un développeur de « travailler correctement » avec IE6 (IE7.js : Comment rendre Internet Explorer utilisable), aujourd’hui c’est tout le contraire, voici le moyen simple que j’ai mis en place sur mon site personnel sur Magic l’Assemblée permettant d’empêcher les internautes utilisant IE6 de naviguer sur mon site.

© http://www.webazia.fr
Pourquoi ?
Outre le fait que ce navigateur inclus de nombreuses failles de sécurités, le problème majeur d’Internet Explorer 6 est qu’il est très peu soucieux des normes du W3C. C’est donc devenu un casse-tête pour tous les développeurs devant faire tourner leur application (ou site) sur ce navigateur particulièrement, le label « optimisé pour Internet Explorer » sur certains sites est la conséquence de ceci.
L’arrivée de navigateurs modernes et respectant les normes du W3C, comme Firefox, Chrome, Safari ou Opéra, ont largement contribué au recul de IE toutes versions confondues. Si bien que les concepteurs de sites web sont obligés d’inclure des quantités de bidouillages pour tenir compte des spécificités de IE6 (d’ailleurs IE7 n’est guère mieux).

© http://ie6.forteller.net
Son utilisation ne cesse de diminuer, allant de 90% en 2002 à 15% en 2010, nous ne pouvons que nous féliciter de cela, et ce n’est pas prêt de s’arrêter car de nombreux sites à très forte audience ont décidé de ne plus supporter IE6 : Youtube, DailyMotion, Gmail, Facebook ou Twitter, une décision basée principalement sur le coût supplémentaire que nécessite la maintenance du code sur ce navigateur vieux de plus de 9 ans.
Plus radical qu’un simple bandeau de non support d’IE6 indiquant à l’utilisateur que son navigateur est obsolète mais le laissant tout de même naviguer sur le site, voici donc les quelques lignes à inclure dans votre site pour définitivement mettre un terme aux internautes utilisant ce navigateur totalement démodé.
Code à insérer
Voici le moyen de détecter qu’un internaute visite votre site à l’aide d’Internet Explorer 6 et si tel est le cas l’envoyer sur une page de votre site, faite sur mesure, lui indiquant qu’il lui est impossible de visualiser le contenu de votre site.
Il vous suffit pour cela d’insérer dans la balise <head> de votre page ce bout de code :
- soit une redirection par la balise META :
<!--[if lte IE 6]>
<meta http-equiv="refresh" content="0; url=ie-6-non-supporte.html" />
<![endif]-->
- soit une redirection par l’exécution d’un script javascript :
<!--[if lte IE 6]>
<script type="text/javascript">
/* <![CDATA[ */
// Redirects any visitor using Internet Explorer 6 (or lower)
window.location = "ie-6-non-supporte.html";
/* ]]> */
</script>
<![endif]-->
Voici à quoi peut ressembler une telle page :

© http://www.eveille.fr




Affichez votre portrait
{ 11 commentaires… à vous de vous exprimer ! }
D’un côté je n’aime pas mettre de côté une minorité (lol), de l’autre j’aime le monde du free, de l’open source et de la coopération. Bref je sais pas si c’est bien mais ça a l’air de vraiment bien fonctionner
C’est une méthode qui commence vraiment à émerger depuis 2010, et dont j’encourage le choix depuis plusieurs années déjà. Si les gens sont encore sur de vieux navigateurs, dépenser de l’énergie à les conforter dans leur ignorance en bidouillant, c’est vraiment un mauvais plan.
L’information, c’est un peu plus intéressant déjà : « votre navigateur est vieux, le site ne vous sera pas agréable ; de bons navigateurs gratuits existent aux adresses suivantes, etc. »
Même IE 7 doit être jeté. Pour le 8, l’effort d’ajustement est bien moindre et reste raisonnable. Cependant, il reste un navigateur pas terrible par rapport à ses concurrents.
H.s. : un fil de syndication pour les commentaires serait cool :p.
@meduz’ : l’information ou le bandeau ne sont pas suffisant pour moi, je pense qu’il faut totalement rejeter ce navigateur, le script est efficace en ce sens
Oui, tout dépend de la vocation du site web. Perso, je gère ça côté serveur avec une fonction php qui s’occupe de vérifier le USER_AGENT (j’ai fait une indentation avec des tirets pour le confort de lecture) :
[php]
function browser()
{
$pos = strpos($_SERVER['HTTP_USER_AGENT'], "MSIE");
// on cherche MSIE dans la string du USER_AGENT
if($pos != FALSE)
{ // on a trouvé IE
$ms_version = substr($_SERVER['HTTP_USER_AGENT'],$pos+5,3);
// on cherche la version dans la string (IE "x.x")
if ($ms_version > "7.0")
{
return 1; // au-dessus de la 7.0, bon browser
}
else
{
return 0; // en-dessous, q+
}
}
return 1; // on n’a pas trouvé IE
}
[/php]
Après, on fait ce qu’on veut de la fonction : interdiction totale, avertissement…
Merci pour ton script meduz’, j’ai édité ton commentaire en utilisation l’indentation automatique du code avec la balise : [plain][php] … [/php][/plain]
Je préfère tester le navigateur de l’internaute côté client, mais ton option côté serveur est intéressante, merci.
De rien, et mes excuses pour la mise en page, j’ignorais l’existence de la balise php.
Chaque méthode a sa faiblesse : côté serveur, le navigateur peut avoir balancé n’importe quoi comme chaîne de caractère pour le HTTP_USER_AGENT alors que (attention, je vais peut-être dire une bêtise, je connais rien au JS), côté client, le JavaScript peut être désactivé sans qu’on ne puisse avoir aucune maîtrise. De plus, on alourdit quelque peu la page (une broutille).
Ceci dit, on peut toujours employer les deux méthodes, ce qui réduit les chances de se foirer ;p.
Ah oui c’est pas mal comme solution.
Un peu radical, mais bon on en a marre ce cet IE6 !!!!
@meduz’ : la redirection par la balise META est suffisante, ce qui fait que le code javascript peut-être supprimé et donc la détection + la redirection se fait alors entièrement en HTML.
@sylv185 : +1 !!!
Article mis à jour.
Dès le 15 septembre prochain, les utilisateurs d’IE6 n’auront plus accès au tchat de Facebook
Disons qu’ils n’auront pas accès aux nouvelles fonctionnalités du service mais pourront tout de même tchatter.
Ah bah voilà une idée qu’elle est bonne ^^
Voici un petit script jQuery qui fera planter votre IE6 de manière radicale, rien que ça ! +1