Jan L.: innerHTML

Hallo allerseits!

Gibt es eine Möglichkeit, um zu testen, ob der Browser die Methode innerHTML unterstützt? Ich habe das ohne den gewünschten Erfolg mit:
if(document.getElementById.innerHTML)
versucht.

Oder sollte man innerHTML gar nicht benutzen und sowas wie appendChild() usw. verwenden? Welche Browser unterstützen innerHTML überhaupt und gehört es zum Standard?

Ich würde eben gerne zuerst prüfen, ob die Ebenen, die ich fürs DHTML verwende, überhaupt dynamisch mit Inhalt gefüllt werden können. Funktionieren soll das ganze auf jeden Fall mit neueren Netscapes/Mozilla und IE 5+. Opera 6.x und Konqueror 3+ (dort habe ich noch gar nicht getestet) wäre auch schön, wenn das nicht zuviel Mehraufwand bedeutet (es ist nur ein Gimmick und nicht undedingt erforderlich). Auf keinen Fall sollen aber Ebenen ohne Inhalt erscheinen (so ist es zur Zeit unter Opera 6.03).

Danke und Gruß, Jan

  1. Hallo,

    Gibt es eine Möglichkeit, um zu testen, ob der Browser die Methode innerHTML unterstützt? Ich habe das ohne den gewünschten Erfolg mit:
    if(document.getElementById.innerHTML)
    versucht.

    if(document.documentElement.innerHTML)

    Oder sollte man innerHTML gar nicht benutzen und sowas wie appendChild() usw. verwenden? Welche Browser unterstützen innerHTML überhaupt und gehört es zum Standard?

    Es ist eine MS-Implementierung, die IMHO sinnvoll und praktisch ist und (wohl deshalb) auch in Mozilla uebernommen wurde und Opera 7 soll ebenfalls innerHTML kennen.

    Einen Ersatz fuer innerHTML gibt es aber in den aktuellen Opera-Versionen auch mit DOM-Methoden nicht.

    MfG, Thomas

    1. Hallo Thomas,

      Vielen Dank für die schnelle Antwort, das hilft mir weiter.

      Gruß, Jan

    2. Hallo,

      if(document.documentElement.innerHTML)

      Eine Frage hätte ich dazu doch noch.

      In selfhtml konnte ich nichts zu 'documentElement' finden. Kennt jemand eine Seite mit einer vollständigen Auflistung/Beschreibung aller Objekte sowie deren Eigenschaften und Methoden?

      Gruß, Jan

      1. gruss Jan,

        if(document.documentElement.innerHTML)

        Eine Frage hätte ich dazu doch noch.

        In selfhtml konnte ich nichts zu 'documentElement' finden.

        ich vermute, dass "documentElement" hier
           nur als platzhalter dienen sollte - man
           koennte das beispiel auch so aufdroeseln:

        var docElm = "div";  // documentElement
           var elmName = "xyz"; // elementName
           var obj = document.getElementsByTagName(docElm)[elmName];
           // jetzt die abfrage
           if (obj.innerHTML) {...;}

        Kennt jemand eine Seite mit einer vollständigen
        Auflistung/Beschreibung aller Objekte sowie deren
        Eigenschaften und Methoden?

        http://selfhtml.teamone.de/javascript/objekte/index.htm

        grundsaetzlich kannst Du aber objekte immer mit
           einer for-in-anweisung auf deren eigenschaften
           und methoden abklopfen - bsp.:

        var obj = document.getElementById("o2cPlugin"); // activeXControl usw.
         var log = "";
         var prop = "";
         for (prop in obj) {
          log += prop + " = " + obj[prop] +"\n";
         }
         var myWin = window.open("","","width=400,height=600");
         myWin.document.open("text/plain");
         myWin.document.write(log);
         myWin.document.close();
           // alert(log); // nicht so ratsam;

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

        1. Hallo Peter,

          ich vermute, dass "documentElement" hier
             nur als platzhalter dienen sollte - man
             koennte das beispiel auch so aufdroeseln:

          Daß das nur als Platzhalter dienen sollte, glaube ich nicht. Es funktioniert ja mit genau dieser Anweisung.

          Kennt jemand eine Seite mit einer vollständigen
          Auflistung/Beschreibung aller Objekte sowie deren
          Eigenschaften und Methoden?

          http://selfhtml.teamone.de/javascript/objekte/index.htm

          Das war mir bekannt. Hab mich ja gewundert, weil ich dort nichts dazu gefunden habe.

          grundsaetzlich kannst Du aber objekte immer mit
             einer for-in-anweisung auf deren eigenschaften
             und methoden abklopfen - bsp.:
          ...

          Sehr interessant, das wußte ich nicht. Vielen Dank dafür.

          Gruß, Jan

          1. hallo again Jan,

            Daß das nur als Platzhalter dienen sollte, glaube ich nicht.
            Es funktioniert ja mit genau dieser Anweisung.

            jo - das hat mich gestern abend dann auch noch beschaeftigt,
               besonders, weil ich beim lesen eines anderen beitrags von
               Thomas Meinike auf ein aehnliches konstrukt gestossen bin:
               http://forum.de.selfhtml.org/my/?t=29287&m=158666 -
               [pref:t=29287&m=158666]

            bei microsoft kannst Du diese eigenschaft unter
               http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/properties/documentelement.asp
               nachlesen;

            wissender geworden - tschuess - peterS. - pseliger@gmx.net

        2. Hallo,

          ich vermute, dass "documentElement" hier
             nur als platzhalter dienen sollte ...

          documentElement referenziert im DOM das Wurzelelement. Schreibe einfach mal alert(document.documentElement.tagName)

          In einem HTML-Dokument ist es das Element html, in einem SVG-Dokument svg usw.

          BTW: Die Beta von Opera 7 kennt das Objekt document.documentElement nun auch.

          MfG, Thomas

          1. gruss Thomas,

            documentElement referenziert im DOM das Wurzelelement.
            Schreibe einfach mal alert(document.documentElement.tagName)

            alles klar -
               "documentElement" gehoert seit
               gestern abend zu meinem repertoire

            MfG, Thomas

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

      2. Hallo,

        In selfhtml konnte ich nichts zu 'documentElement' finden. Kennt jemand eine Seite mit einer vollständigen Auflistung/Beschreibung aller Objekte sowie deren Eigenschaften und Methoden?

        Vielleicht helfen diese Links weiter:
        http://webreference.com/js/column75/
        http://wsabstract.com/javatutors/dom.shtml
        http://www.xs4all.nl/~ppk/js/index.html?dom1.html
        http://www.brainjar.com/dhtml/intro/

        MfG, Thomas

  2. Vielen Dank euch beiden!

    Das ursprüngliche Problem war ja mit dem 'documentElement' schnell gelöst. Die anderen Tipps und Links waren aber auch sehr hilfreich und haben meinen Horizont, was das DOM angeht, auf jeden Fall erweitert.

    Gruß, Jan