HTML 5 sur Internet Explorer 7 et 8

HTML 5 n'est pas implémenté par Internet Explorer 8, cependant il est possible de faire que ce navigateur reconnaisse les nouvelles balises de ce format, et sur le blog du WHATWG, le créateur du format, nous explique comment.

Noter que ce procédé sera totalement dépassé une fois qu'Internet Explorer 9 et version suivantes auront totalement remplacé les versions anciennes..

L'astuce dévoilée est mise à profit par un script proposé sur le script Remysharp.com pour ajouter la reconnaissance des balises HTML 5 sous Internet Explorer, que ce soit la version 6, 7 ou 8.

Ce script étant voulu compact n'est pas très facile à lire, aussi j'en ai fait une version lisible, pour permettre de comprendre son fonctionnement:

(
 function()
{
    if(!/*@cc_on!@*/0)return;   // compilation conditionnelle 
var str = "abbr,article',aside,audio,bb,canvas,datagrid,datalist,details,dialog, eventsource,figure, footer,header,mark,menu,meter,nav, output,progress,section,time,video"; var list = str.split(","); for(i = 0; i < list.length; i++) { document.createElement(list[i])
} } )

On voit que les nouvelles balises sont créés au niveau global pour la page, c'est une astuce qui permet au moteur de DOM d'Internet Explorer de les identifier quand elles sont présentes dans le corps de la page!

Bien sûr on peut restreindre l'exécution du script au seul navigateur Internet Explorer:

<head>   
<!--[if IE]>
    <link rel="stylesheet" href="html5.js">
<![endif]-->  
</head>

Cette astuce ne concerne que les nouvelles balises, or HTML 5 est plus que cela, c'est aussi Canvas, storage, les balises multimedia...
Mais il existe aussi des plugins pour ajouter la balise Canvas à IE et le support complet de son contenu.

L'utilité réelle est donc surtout d'appliquer des styles aux éléments de la page définis avec ces nouvelles balises et donc d'avoir une compatibilité avec tous les navigateurs.

La même technique est utilisée par un autre projet, HTML 5 Shiv.
Une fois l'élément créé et ajouté au DOM, on lui applique un style et ce style est reconnu par IE chaque fois que cet élément est présent dans la page.

Références et compléments

© 2008-2012 Xul.fr