En fait ce que j'ai codé marche très bien sous Firefox (normal ça valide, et le Console JS ne m'indique aucune erreur). Sous IE, si je mets un DOCTYPE <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> (HTML Transitional, sans préciser d'URL), ça marche impec (bien qu'en réalité ce soit du XHTML, mais bon...) (de la sorte ça passe aussi sur Firefox, mais bien sûr ça valide pas
En mettant le véritable DOCTYPE XHTML Strict <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">, ça valide et Firefox l'interprète correctement, mais IE ne fait plus apparaître la boîte.
Lorsque je faisais mes tests pour voir si ça passait, je mettais les deux DOCTYPE (en commençant par le Transitional) et je commentais/décommentais l'un des deux pour avoir celui pour lequel je voulais tester.
Et je me suis aperçu que, bien qu'avec le DOCTYPE XHTML Strict IE merde, avec le DOCTYPE HTML Transitional dans un commentaire HTML suivi du DOCTYPE XHTML Strict (ce qui passe toujours sans problème au validateur), IE ne merdait plus.
J'en ai donc conclus, peut-être à tord, qu'IE (Firefox je pense pas vu qu'il respecte bien les normes et que ça passe au validateur, mais faudrait probablement tester avec du code qui aura un comportement différent suivant le DOCTYPE effectif) tenait compte du contenu du commentaire HTML du début et prenait comme DOCTYPE celui défini dans les commentaires, et ignorait (ce qui est somme toute logique) la définition de DOCTYPE suivante (qui est a priori pourtant la seule qui devrait être considérée, l'autre étant commentée).
Ou alors peut-être que je fais une erreur et que des commentaires HTML avant la balise HTML ne sont pas considérés comme commentaires ?
Si quelqu'un avait des éclaircissement à ce sujet, je suis preneur. Si ce que je pense s'avère exact, ça nous donne un moyen de définir un DOCTYPE différent pour IE (ce qui peut s'avérer utile vu les différences énormes de comportement d'IE suivant le DOCTYPE).
Pour vous rendre compte par vous même, la version avec le DOCTYPE commenté est là, et celle avec juste le DOCTYPE strict ici.
(Si au passage il s'avère qu'il y a des erreurs dans mon JS, n'hésitez pas
