molily: Ersatz für document.write() in XHTML

Beitrag lesen

Hallo,

Sowohl Opera als auch Gecko führen document.write() in XHTML-Dokumenten (mit xhtml-mimetype) nicht aus. Deswegen suche ich einen praktikablen Ersatz dafür.

Gibt es nicht!
(Behaupte ich mal kühn.)

Daher müsste ich irgendwie das script-Element ermitteln, in dem die Funktion steht, um dann dahinter den HTML-String einzufügen. Gibt es dafür eine Möglichkeit?

Nicht wirklich. Du könntest annehmen, dass das Script-Element das letzte gerparste ist und der Elementbaum genau bis da schon zur Verfügung steht:

document.xhtmlWrite = function (str) {  
 var nodelist = document.getElementsByTagName("*");  
 var script = nodelist.item(nodelist.length - 1);  
 var div = document.createElement("div");  
 div.innerHTML = str;  
 script.parentNode.insertBefore(div.firstChild, script);  
};

Vielleicht gibt es aber auch noch eine bessere Möglichkeit, daher bin ich für Tipps sehr dankbar.

Bleib am besten bei XHTML als text/html. Ich würde nicht empfehlen, da herumzubasteln. Bastelei wird unzuverlässig. Ich würde obigen Code nicht live einsetzen. Er macht zuviele Annahmen. Gut, man könnte Abfragen einbauen - aber was hat man davon. Wenn sie scheitern, funktioniert die Site trotzdem nicht.

Mathias