rucksackpeggy: korrekte Generierung nur via document.write möglich?

Habe eine Seite in 2 Div-Bereiche gegliedert, die mittels innerHTML (wegen Intranet nur für IE gedacht) gefüllt werden. Inhalt wird eine Tabelle, deren Zeilen und Drumrum automatisch generiert werden (Variablen, die entsprechenden HTML-Code enthalten). Funktioniert soweit prächtig, aber Darstellung der Grafiken manchmal erst nach refresh korrekt. Ein Preload der Bilder ändert auch nix an dieser Tatsache.

Stellt sich die Frage, ob für Generierung von Bildern mittels Javascript immer document.write zum Einsatz kommen muss.... Falls ja - wie kann ich mit document.write eine Reihe von Tabellenzeilen erstellen? Habe bisher mit for (i=0;..;i++) gearbeitet, aber momentan einen Knoten im Hirn und weiss nicht, wie ich alles (for-Schleife; document.write; innerHTML) unter einen Hut bringen soll...

Beispiel, wie's nicht so richtig funktioniert:

for(i=0;i<anzahllinks;i++) {
symbol="<td><img src='images/" + endung[art][i] + ".gif'></td><td>";
zeile[i] = eintraganfang + symbol + linkanfang + ... + eintragende;
links = links + zeile[i];
}
document.all.listelinks.innerHTML = tabelleanfang + links +tabelleende;

Falls das jetzt nicht zu noch mehr Hirnwindungsverknotungen geführt hat, würde ich mich über hilfreiche Tipps freuen. Danke!

  1. Hallo, rucksackpeggy,

    Darstellung der Grafiken manchmal erst nach refresh korrekt. Ein Preload der Bilder ändert auch nix an dieser Tatsache.

    Das sollte aber eigentlich nichts mit der Generierung des Codes durch Javascript zu tun haben. Den Effekt habe ich auch schon bei anderen Seiten mit vielen Bildern festgestellt (Server-Timeout?).

    ob für Generierung von Bildern mittels Javascript immer document.write zum Einsatz kommen muss....

    Du machst es doch mit innerhtml ...

    wie kann ich mit document.write eine Reihe von Tabellenzeilen erstellen?

    anstatt die erzeugte Variable mit innerhtml auszugeben schreibst Du sie mit document.write ...

    Beispiel, wie's nicht so richtig funktioniert:

    for(i=0;i<anzahllinks;i++) {
    symbol="<td><img src='images/" + endung[art][i] + ".gif'></td><td>";
    zeile[i] = eintraganfang + symbol + linkanfang + ... + eintragende;
    links = links + zeile[i];
    }
    document.all.listelinks.innerHTML = tabelleanfang + links +tabelleende;

    Scheint auf den ersten Blick O.K. zu sein - aber was bedeuten die drei Punkte?

    Gib doch den erzeugten Code mal mit alert oder in einem popup-Fenster aus. Dann siehst Du den von JavaScript erzeugten HTML-Code und findest den eventuellen Fehler leichter.

    Grüße aus Berlin,

    Sebastian

    1. Hi Sebastian,

      Scheint auf den ersten Blick O.K. zu sein - aber was bedeuten die drei Punkte?

      Die drei Punkte stehen nur für einen Rattenschwanz weiterer Strings enthaltender Variablen.

      Gib doch den erzeugten Code mal mit alert oder in einem popup-Fenster aus. Dann siehst Du den von JavaScript erzeugten HTML-Code und findest den eventuellen Fehler leichter.

      Der erzeugte Code ist i.O., aber ich bin halt in's Zweifeln gekommen, da die meisten Javascript Beispiele, in denen Grafiken generiert werden, mit document.write arbeiten...

      Danke und Grüße aus dem (beruflichen) Exil in meine Wahlheimat!!!!
      Peggy

      Grüße aus Berlin,

      Sebastian

      1. Hi Peggy,

        Der erzeugte Code ist i.O., aber ich bin halt in's Zweifeln gekommen, da die meisten Javascript Beispiele, in denen Grafiken generiert werden, mit document.write arbeiten...

        document.write ist im Gegensatz zu innerhtml standardkonform und wird von allen javascriptfähigen Browsern unterstützt. Das wird wohl der grund sein ...

        Grüße,

        Sebastian