J'ai le script suivant, où le premier et le troisième document.writeline
sont statiques et le second est généré :
<script language="javascript" type="text/javascript">
document.write("<script language='javascript' type='text/javascript' src='before.js'><\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript'>alert('during');<\/sc" + "ript>");
document.write("<script language='javascript' type='text/javascript' src='after.js'><\/sc" + "ript>");
</script>
Firefox et Chrome afficheront avant , pendant et après alors qu'Internet Explorer affiche d'abord pendant et c'est seulement à ce moment-là que l'on voit avant et après .
Je suis tombé sur un article qui dit que je ne suis pas le premier à rencontrer ça, mais ça ne me rassure pas.
Quelqu'un sait-il comment faire en sorte que l'ordre soit déterministe dans tous les navigateurs, ou comment modifier IE pour qu'il fonctionne comme tous les autres navigateurs sains d'esprit ?
Mises en garde : L'extrait de code est un reproducteur très simple. Il est généré sur le serveur et la deuxième script est la seule chose qui change. C'est un long script et la raison pour laquelle il y a deux scripts avant et après est que le navigateur les mettra en cache et que la partie dynamique du code sera aussi petite que possible. Il peut également apparaître plusieurs fois dans la même page avec un code généré différent.