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