Réponse courte: cela dépend. Apparemment, selon mes tests, la réponse semble être oui, selon ce que vous voulez. Je viens de tester ceci:
<html>
<head>
<style type="text/css">
.foobar { background-color: #CCC; }
</style>
</head>
<body>
<script type="text/javascript">
window.document.body.className = "foobar";
</script>
<div style="border: solid 1px"><br /></div>
<script type="text/javascript">
// happens before DOM is fully loaded:
alert(window.document.body.className);
</script>
<span>Appears after the alert() call.</span>
</body>
</html>
Dans IE 7, lorsque le alert()
a lieu, la valeur est correctement réglée, mais le style n'a pas encore été appliqué (il est rapidement appliqué dès que le DOM terminé le chargement).
Dans Firefox, le style a été appliqué au moment où le alert()
a lieu.
En tout cas, j'espère que cela vous sera utile.
Donc, si je vous ai bien, vous dites l'élément n'existe pas jusqu'à ce qu'il soit fermé. Est-ce exact? –
Je dis que c'est le moyen le plus sûr. Je suppose que, puisque l'élément peut ne pas être entièrement spécifié (balise de fin manquante), le navigateur ne l'ajouterait pas au DOM tant qu'il n'aurait pas été complètement analysé. Je ne peux pas pointer vers une norme qui impose cela, cependant. – tvanfosson
Apprécié. Je vais élaborer un peu plus et voir que je suscite plus de neurones - des acclamations. –