Valentin H.: Prüfen ob innerHTML existiert

Hallo,

ich versuche schon seit Längerem eine if Abfrage zu erstellen, ob der Browser des Besuchers die Eigenschaft innerHTML kennt.

Am Einfachsten würde es wahrscheinlich mit if(document.all) gehen, allerdings gibt es Browser (iPod; Safari), die das all-Objekt nicht kennen, dafür aber innerHTML!

Wisst ihr, wie ich so eine innerHTML Abfrage erstelle oder ob so etwas überhaupt möglich ist?

  1. hallo,

    Wisst ihr, wie ich so eine innerHTML Abfrage erstelle oder ob so etwas überhaupt möglich ist?

    du könntest vielleicht den http://de.selfhtml.org/javascript/sprache/operatoren.htm#typeof@title=typ der innerHTML eigenschaft eines dom elements anschauen, sollte "string" sein laut msdn, oder einen "vorher", "nachher" vergleich einer zuweisung an sie machen, falls du ganz misstrauisch bist

    1. oder einen "vorher", "nachher" vergleich einer zuweisung an sie machen, falls du ganz misstrauisch bist

      Was soll das bringen?
      element.nichtExistenteEigenschaft = "wert";
      alert(element.nichtExistenteEigenschaft == "wert"); // ist immer true, auch wenn die Eigenschaft überhaupt keine Bedeutung hat.

      Mathias

      1. »» oder einen "vorher", "nachher" vergleich einer zuweisung an sie machen, falls du ganz misstrauisch bist

        Was soll das bringen?

        ich meinte eher, dass man sich hinterher den dom baum anschaut, entschuldigung für die verwirrung

  2. Hi,

    ich versuche schon seit Längerem eine if Abfrage zu erstellen, ob der Browser des Besuchers die Eigenschaft innerHTML kennt.

    ich bin neugierig. Was für eine Besucherschaft hast Du, bei der dies noch in realistischem Maß auftritt?

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:| br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
  3. Wisst ihr, wie ich so eine innerHTML Abfrage erstelle oder ob so etwas überhaupt möglich ist?

    var e = document.createElement("p");
    e.innerHTML = "bla";
    if (e.childNodes.length == 1 && e.firstChild.nodeType == 3) {
       alert("Browser kann innerHTML (hat zumindest durch das Setzen der Eigenschaft dem Knoten einen Textknoten angehängt)");
    }
    delete e;

    Beliebig ausbaubar durch das Setzen von Elementen und dem Abfragen der Kindknoten.

    Mathias

  4. An die childNodes hätte ich auch schon gedacht, nur leider gehen die erst ab Javascript 1.5! Hab jetzt ein Bisschen mit den Abfragen experimentiert und bin zu diesem simplen Code gekommen:

    <form name="Formular" action=""><input type="text" name="Text" value="abcdef"></form>  
    <script type="text/javascript">  
    {  
    if(document.Formular.innerHTML)  
    alert("Der Browser kennt innerHTML!");  
    }  
    </script>
    

    Mein Gedanke dazu ist, dass, wenn der Browser innerHTML kennt, überprüft er ja, ob Formular etwas enthält; in diesem fall währe die Abfrage richtig, weil ein input darin liegt. Wenn der Browser innerHTML nicht kennt, überprüft er, ob die Form das Attribut innerHTML hat und ob dieses Attribut etwas enthält; in diesem Fall ist die Abfrage falsch.

    Liege ich da richtig?

    1. Hallo,

      Mein Gedanke dazu ist, dass, wenn der Browser innerHTML kennt, überprüft er ja, ob Formular etwas enthält;

      du kannst typeof verwenden, dann brauch kein input drinnen zu sein!

      mfg, Flo

      --
      sh:) fo:| ch:? rl:( br:^ n4:| ie:{ mo:| va:} de:> zu:} fl:{ ss:) ls:< js:|
      1. Hallo,

        »» Mein Gedanke dazu ist, dass, wenn der Browser innerHTML kennt, überprüft er ja, ob Formular etwas enthält;
        du kannst typeof verwenden, dann brauch kein input drinnen zu sein!

        mfg, Flo

        Das passt schon so! Ich möchte nämlich eine Datumsausgabe machen. Wenn der Browser innerHTML unterstützt, wird es in die Form geschrieben, wenn er innerHTML nicht unterstützt, kommt das Datum in das input Feld.

        mfG
        Valentin

    2. An die childNodes hätte ich auch schon gedacht, nur leider gehen die erst ab Javascript 1.5!

      Faktisch kann jeder Browser, der innerHTML kann, auch das DOM.
      Lediglich der Internet Explorer 4 kann das W3C-DOM nicht vollständig, der kennt aber children statt childNodes.
      Vergiss übrigens diese Angabe »JavaScript 1.5« in SELFHTML. JS 1.5 hat damit gar nix zu tun, das ist Unsinn.

      Nochmal, warum diese Abfrage? Schreibst du Websites für MSIE 3 und Netscape 4?

      Mathias

      1. Nochmal, warum diese Abfrage? Schreibst du Websites für MSIE 3 und Netscape 4?

        Mathias

        Ich erstelle ein Javascript für eine Datumausgabe, die in allen Browsern laufen sollte.

        1. Hi,

          Nochmal, warum diese Abfrage? Schreibst du Websites für MSIE 3 und Netscape 4?

          Ich erstelle ein Javascript für eine Datumausgabe, die in allen Browsern laufen sollte.

          In *wirklich* "allen" wird wohl ein hoffnungsloses Unterfangen bleiben; und in der derzeitigen Form, wo noch auf pre-innerHTML-Uraltbrowser Ruecksicht genommen werden soll [1], ein zumindest vom Aufwand-Nutzen-Faktor her reichlich fragwuerdiges.

          [1] Interessehalber: *Welche* denn bitte ...?

          MfG ChrisB

          --
          „This is the author's opinion, not necessarily that of Starbucks.“