Mohawk: Auf Tabelle zugreifen ohne getElementsByID...

Hallo, ich möchte in meinem Script eine Tabelle dynamisch erweitern. Dazu muß ich ja auf mein Tabellen-Objekt zugreifen. Die Funktion getElemntsByID ist leider bei Netscape erst ab Version 6.x verfügbar, also kann ich diese nicht benutzen. Gibt es eine andere Zugriffsart? So nach der Art: document.elements["TabellenName"] ;-). Irgendwas muß es doch da geben...

  1. im IE geht vieleicht document.all (siehe dazu SelfHTML-Doku)

    vieleicht mit einem
    document.all.tags("tr")[document.all.tags("tr")]=new ...
    Ich glaube aber nicht, daß es überhautp möglich ist.

    Stattdessen würde ich den Seitenaufbau in einer JavaScript-Variable sammeln und dann ausgeben:

    var txt="<HTML>\n<HEAD>\n...</HTML>\n"
    //mf=frames["meinFrame"].window.document
    // oder:
    mf=window.document
    mf.open("text/html")
    mf.write(txt)
    mf.close()

    1. im IE geht vieleicht document.all (siehe dazu SelfHTML-Doku)

      vieleicht mit einem
      document.all.tags("tr")[document.all.tags("tr")]=new ...
      Ich glaube aber nicht, daß es überhautp möglich ist.

      Stattdessen würde ich den Seitenaufbau in einer JavaScript-Variable sammeln und dann ausgeben:

      var txt="<HTML>\n<HEAD>\n...</HTML>\n"
      //mf=frames["meinFrame"].window.document
      // oder:
      mf=window.document
      mf.open("text/html")
      mf.write(txt)
      mf.close()

      Im IE kann ich die getElementsByID ruhig benutzen, weil es da ab Version 5 bekannt ist und ich für Version 4 nix machen brauch. Aber der Netscape kanns halt nicht. Und in einer separaten Variablen möchte ich es nicht machen, weil ich nicht bei jedem Hinzufügen einer Zeile einen Reload der Seite machen möchte, das ist nämlich eine php-Seite mit Datenbankzugriffen, das kann also schnell mal ins Auge gehen. Das is schon alles ein Sch****e, hups ;-)

      1. Im IE kann ich die getElementsByID ruhig benutzen, weil es da ab Version 5 bekannt ist und ich für Version 4 nix machen brauch. Aber der Netscape kanns halt nicht.

        Das ist aber nun eine seltsame Logik: Die Internet Explorer bis Version 4 werden ausgesperrt, aber die Netscapes bis Version 4 müssen das unbedingt können. Hätte ja verstanden, wenn du nur für neue Browser schreibst (also nur getElementsById), oder komplett für alt und neu. Aber so selektiv?

        Netscape 4 hat mit dem dynamischen Verändern von HTML-Seiten ohnehin so seine Probleme (wie übrigens auch andere Browser, die getELementsById verstehen, wie z.B. Opera). Wenn es überhaupt geht, dann nur, wenn du auf der Seite einen Layer hast, den du (genau wie im Beispiel eben) mit document.layername.document.open.... öffnest und komplett neu schreibst. (Keine Garantie dafür)

        On the fly mal eben eine weitere Tabellenzeile anfügen geht aber garantiert NICHT.

        - Sven Rautenberg

        1. Im IE kann ich die getElementsByID ruhig benutzen, weil es da ab Version 5 bekannt ist und ich für Version 4 nix machen brauch. Aber der Netscape kanns halt nicht.

          Das ist aber nun eine seltsame Logik: Die Internet Explorer bis Version 4 werden ausgesperrt, aber die Netscapes bis Version 4 müssen das unbedingt können. Hätte ja verstanden, wenn du nur für neue Browser schreibst (also nur getElementsById), oder komplett für alt und neu. Aber so selektiv?

          Netscape 4 hat mit dem dynamischen Verändern von HTML-Seiten ohnehin so seine Probleme (wie übrigens auch andere Browser, die getELementsById verstehen, wie z.B. Opera). Wenn es überhaupt geht, dann nur, wenn du auf der Seite einen Layer hast, den du (genau wie im Beispiel eben) mit document.layername.document.open.... öffnest und komplett neu schreibst. (Keine Garantie dafür)

          On the fly mal eben eine weitere Tabellenzeile anfügen geht aber garantiert NICHT.

          • Sven Rautenberg

          Ja, also ganz so unsinnig ist es nicht aldiweil es eine Intranetlösung für eine Firma ist, deren Rechner allesamt mit IE5 und Netscape 4.7 ausgestattet sind. Aufrüstung auf Netscape 6.x wurde verboten. Nicht meine Idee :-(.

  2. hallo indianer,

    schau Dir mal diesen feature artikel an:
       http://www.teamone.de/selfaktuell/artikel/javascript/table-obj/index.htm

    Du koenntest die klasse table um die methoden
       addCols(howMany,colPosition) bzw.
       addRows(howMany,rowPosition) erweitern;

    falls ein breites interesse (20 leute) daran besteht,
       koennte ich diesen feature-artikel ueberarbeiten, da
       mich mittlerweile einige sachen in diesem beitrag stoeren;

    ( bis jetzt war die resonanz auf das feature weniger als
       verhalten, so dass ich nicht einzuschaetzen vermag, ob
       ueberhaupt jemand anderes ausser mir mit der table-class
       arbeitet - [wobei ich bis jetzt auch nur in drei spezial-
       faellen darauf zurueckgegriffen habe] )

    by(t)e by(t)e - peterS. - pseliger@gmx.net