Falk Pauser: document.write() und Netscape, images-Array()

hi selfhtml-fans!

ich hab' da ein problemchen und so recht
komm' ich nicht mit der Lösung nicht voran..
es geht um folgendes:

  • eine klitzekleine startdatei (index.html)
      bindet eine externe *.js-datei ein und hat
      lediglich eine "onLoad()='loader()'" anweisung
      im body... die aufgerufene function steht in
      der externen js-datei -> so weit so gut....
  • die function "loader" ruft nun diverse andere
      functionen auf und schreibt mit "document.open();
      und document.write()" eine neue html datei.
      diese neu erzeugte html-datei wiederum
      hat ihrerseits ebenfalls eine externe *.js-datei
      im header:
      ("<script language='javascrip1.2' src='...'></script>
      und einen "onload"-befehl im body-tag.

man könnte sagen, die js-datei der ersten
html-datei dient den funktionen zum schreiben
der kompletten neuen html-seite, die 2. js-datei
beinhaltet dann die functionen für die erzeugte
html-datei, wobei es auch hier eine "onload"
sache geben sollte.

problem: netscape (wer sonst) rafft es
nicht - der explorer hingegen kommt damit zurecht...
-> deswegen noch eine frage an euch: wo gibts es
quellen zum genauen "startverhalten" von netscape
und explorer -> was wird wann gemacht? z.b. wird
erst onload ausgeführt oder zuerst der quellcode
des scriptes darüber? und und und...

dann noch ein hinweis für alle, die auch via document.write()
neue html-dokumente erzeugen wollen - die ganze sache wird
auf netscape entscheidend schneller, wenn man sich z.b. seine
eigene write routine bastelt und zuerst die ausgaben in einer
variablen puffert:
(function write(content) { if ... writePuffer+= content; else ... flush() }
(z.b. bis maximal 2048 bytes oder so) - diese wiederum
schreibt erst bei erreichen der vorgegebenen grenze mittels
document.write() den code...

nochwas: wenn ich images in einem array belasse, und dann mittels
rollover diese images gegen animated-gif-images austausche macht
netscape das nicht - ich seh' dann immer nur das letzte bild der
animation... (ungefähr so, als würde er die animated gifs in
dem moment abspielen, wenn sie in das array geladen werden... denn
wenn man schon beim laden über die bilder geht, werden die ersten
images beim austausch noch animiert....

okay - das soll reichen ;-) wäre dankbar, wenn ihr da mal rüberschauen
könntet!!

mfg
-p-

www.tu-ilmenau.de/~faxen
paule.p@gmx.de

  1. diese neu erzeugte html-datei wiederum
      hat ihrerseits ebenfalls eine externe *.js-datei
      im header:
      ("<script language='javascrip1.2' src='...'></script>
      und einen "onload"-befehl im body-tag.

    problem: netscape (wer sonst) rafft es
    nicht - der explorer hingegen kommt damit zurecht...

    -> deswegen noch eine frage an euch: wo gibts es
    quellen zum genauen "startverhalten" von netscape
    und explorer -> was wird wann gemacht? z.b. wird
    erst onload ausgeführt oder zuerst der quellcode
    des scriptes darüber? und und und...

    Hi,
    ich hatte ein ähnliches problem; es scheint dass der netsc bei document.write die <script>-tags einfach nicht schreibt.
    zumindest wurden sie im quellcode nach dem schreiben der neuen seite nicht angezeigt (beim IE schon).
    dadurch fehlt natürlich der verweis auf die ext. javascript-datei bzw die functions selbst, wenn man sie
    direkt reinschreiben will.
    es hat erst funktioniert, als ich zum schreiben der neuen seite ein neues fenster geöffnet hatte.
    bei einem verweis konnte ich dann per <a href="javascript:opener.function() etc auf das 1.fenster und die dort referenzierte
    javascript-datei zugreifen - vielleicht geht das auch bei onLoad.

    es liegt wohl nicht am "startverhalten", sondern dass für den netsc das irgendwie keine richtige seite ist.
    falls Du das javascript genauer brauchst, meld Dich noch mal.

    gruss
    Anne

    1. Hallo

      Ich kann zu dem gesamten Problem zwar nicht viel mehr sagen, habe aber das mit dem script-Bereich schon hinter mir.

      So wie es aussieht, ist für Netscape bei einem </script> das Skript auch wirklich zu Ende, selbst wenn das in einem write steht. Wahrscheinlich gibt es mit <script> ähnliche Probleme.

      Meine Abhilfe war ein write("</scr");write("ipt>");.

      Tschüß