Weil das JavaScript je nach Browser erst nach dem Parsen des DOM ausgeführt wird.
Das JavaScript wird ausgeführt, sobald der HTML-Parser das script-Element trifft.
Außer natürlich
Nix »außer«.
wenn man document.write verwendet - aber das würde bei der verarbeitung als XML nicht mehr "funzen".
document.write ist nicht nötig, DOM ginge genauso.
Da ich es für illusorisch halte, dass das XHTML-Dokument als XML ausgeliefert wird, würde ich trotzdem zu document.write raten.
Kannst du ggf. ein kurzes Beispiel posten - zum Ausprobieren - ich steh irgendwie am Schlauch.
<script>
document.write('<style> .js #bla { opacity:0; /* IE-Filter, -moz-opacity usw. ... */ } </style>');
</script>
oder
el = document.createElement("style");
el.appendChild('.js #bla { opacity:0; /* IE-Filter, -moz-opacity usw. ... */ }')
document.getElementsByTagName('head').item(0).appendChild(el);
delete el;
Mathias