Voir la solution au bas de la question.
IE 8 (et inférieur) ne fonctionne pas bien avec les éléments inconnus (c'est-à-dire les éléments HTML5), on ne peut pas les styliser, ni accéder à la plupart de leurs propriétés. Il existe de nombreuses solutions pour contourner ce problème, par exemple : http://remysharp.com/2009/01/07/html5-enabling-script/
Le problème est que cela fonctionne très bien pour le HTML statique qui était disponible au chargement de la page, mais lorsque l'on crée des éléments HTML5 par la suite (par exemple un appel AJAX les contenant, ou simplement la création avec JS), ces éléments nouvellement ajoutés seront marqués comme HTMLUnknownElement
comme supposé le faire HTMLGenericElement
(dans le débogueur d'IE).
Quelqu'un connaît-il un moyen de contourner ce problème, afin que les éléments nouvellement ajoutés soient reconnus/activés par IE 8 ?
Voici une page de test :
<html><head><title>TIME TEST</title>
<!--[if IE]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>
</head>
<body>
<time>some time</time>
<hr>
<script type="text/javascript">
$("time").text("WORKS GREAT");
$("body").append("<time>NEW ELEMENT</time>"); //simulates AJAX callback insertion
$("time").text("UPDATE");
</script>
</body>
</html>
Dans IE, vous verrez le : UPDATE , et NEW ELEMENT. Dans tout autre navigateur moderne, vous verrez UPDATE, et UPDATE