st: Operas document.write() platziert Elemente falsch

Beitrag lesen

Hallo,

folgender Code:

<script type="text/javascript">
document.write('<div>');
document.write('<script type="text/javascript" src="beispiel.js"><' + '/script>');
document.write('<'+'/div>');
</script>

beispiel.js enthält seinerseits Code, um Elemente auszugeben:

document.write("<p>Ich bin ein Beispiel.</p>");

(Das mag hier in der Theorie etwas à la Von hinten durch die Brust ins Auge aussehen, muss aber in der Praxis leider so sein. Ich kann es nicht beeinflussen.)

Firefox erzeugt, wie von mir erwartet, dieses Bäumchen:

<div>
  <p>Ich bin ein Beispiel.</p>
</div>

Opera (und der IE) macht hingegen folgendes:

<div></div>
<p>Ich bin ein Beispiel.</p>

Letzteres ist doch falsch, oder irre ich mich und Firefox macht es verkehrt?

Schreibe ich den kapselnden <div>-Block außerhalb, nicht per Javascript, …

<div><script type="text/javascript">
document.write('<script type="text/javascript" src="beispiel.js"><' + '/script>');
</script>
</div>

… bekomme ich von Opera das erwartete, mit Firefox übereinstimmende Ergebnis - nur leider entspricht der Code nicht dem, was ich gerne hätte.

Liege ich mit meiner Einschätzung richtig und kann mir jemand eine Möglichkeit nennen, das Problem zu umschiffen? Danke.