Hi,
Also kann der IE und alle anderen Browser auch document.open.
Natürlich!
Erkenne das Prinzip dahinter!
Hää?
Ich schrieb's: Einmal wird über einen Link eine neue Seite geöffnet, deren Inhalt durch die Link-"Resource" erzeugt wird.
Das andere Mal wird die bestehende Seite direkt überschrieben.
Zw. document.open() und document.close() stehen ca. 1000 document.write's. Dort werden auch selbst wider scripte eingebunden. Wenn ich das umschreiben soll, bin ich monate unterwegs.
Bedauerlich! :-/
Aber daß man mit write() nicht in aktuelle Seiten schreiben kann, ...
Finde einen Trick, der document.open im onreadystatechange zum laufen bringt (asynchron) und du bist der Held.
... und es daher keine sichere Lösung geben kann, gehört IMHO halt zum JS-Basiswissen.
Aber:
1. 1000 write() sind gar schröcklich unperformant. Sinnvoller ist es, alle Ausgaben in einem String zu sammeln, und den dann mit einem einzigen write() auszugeben.
2. Wenn man das hat, sollte die Umstellung auf DOM relativ einfach sein - jedenfalls wenn man innerHTML bemüht.
3. Man kann die Umwandlung beschleunigen, durch sinnvolle Suchen/Ersetzen-Aktionen (sollte mit jedem besseren Editor kein Problem sein - Notepad++ erlaubt hier sogar RegExp).
Ansonsten eine echte Hack-Variante:
Nimm ein Frameset mit einem unsichtbaren und einem zu 100% sichtbaren Frame. Im unsichtbaren Frame läuft der Request, und das write() erfolgt in den sichtbaren Frame. :-)
Gruß, Cybaer
Man muß viel gelernt haben, um über das, was man nicht weiß, fragen zu können.
(Jean-Jacques Rousseau, Philosoph u. Schriftsteller)