nanomaster: Browsererkennungsscript

hi,
kann mir von euch jemand ein zuverlässiges browsererkennungsscript sagen?
es soll beim laden zwischen Netscape und IE unterscheiden und dann die entspr. seite laden.
thx im voraus,
nano

  1. kann mir von euch jemand ein zuverlässiges browsererkennungsscript sagen?
    es soll beim laden zwischen Netscape und IE unterscheiden und dann die entspr. seite laden.

    keine Ahnung wofür du es brauchst aber ich kann mir grad keinen Fall vorstellen wo sowas nötig wäre.

    Struppi.

    1. keine Ahnung wofür du es brauchst aber ich kann mir grad keinen Fall vorstellen wo sowas nötig wäre.

      Struppi.

      wow,danke,tolle antwort.
      ich hab eine seite für den IE, da sind lauter div-container drin.
      Netscape kann mit sowas ja nichts anfangen, also: layer
      deswegen möchte ich, dass für die jeweilige Browser-version die entsprechende Page lädt

      1. Hallo,

        deine Stichwörter zur Suche in Selfhtml, Archiv usw. wären:

        Netscape kann mit sowas ja nichts anfangen, also: layer

        document.layers

        deswegen möchte ich, dass für die jeweilige Browser-version

        if

        die entsprechende Page lädt

        href

        Gruß,
        CurtB

        1. Hallo,

          deine Stichwörter zur Suche in Selfhtml, Archiv usw. wären:

          Netscape kann mit sowas ja nichts anfangen, also: layer
          document.layers
          deswegen möchte ich, dass für die jeweilige Browser-version
          if
          die entsprechende Page lädt
          href

          Gruß,
          CurtB

          ok, danke, damit kann ich schon was anfangen.
          geht aber trotzdem sowas wie

          if(BrowserName == "Netscape") var br = "nn"
           else                    var br = "ie";

          function GoOn()
           {
           if (br == "nn")
                document.location.href = "nn/homepage.html";
           else
                document.location.href = "ie"homepage.html";
           }

          1. if(BrowserName == "Netscape") var br = "nn"
            else                    var br = "ie";

            Also es gibt deiner Meinung nur Netscape und IE?
            Du kannst dir hier http://browsers.evolt.org/ einen Überblick über die existierenden und vergangenen Browser machen.

            Aber auf jeden Fall ist das:

            function GoOn()7
            {
            if (br == "nn")
                  document.location.href = "nn/homepage.html";
            else
                  document.location.href = "ie"homepage.html";
            }

            Müll.

            Der an der Realität vorbei geht. Falls du deine Seite für viele Besucher nutzbar machen möchtest solltest du auf sowas verzichten.

            Struppi.

            1. if(BrowserName == "Netscape") var br = "nn"
              else                    var br = "ie";

              Also es gibt deiner Meinung nur Netscape und IE?
              Du kannst dir hier http://browsers.evolt.org/ einen Überblick über die existierenden und vergangenen Browser machen.

              Aber auf jeden Fall ist das:

              function GoOn()7
              {
              if (br == "nn")
                    document.location.href = "nn/homepage.html";
              else
                    document.location.href = "ie"homepage.html";
              }

              Müll.

              Der an der Realität vorbei geht. Falls du deine Seite für viele Besucher nutzbar machen möchtest solltest du auf sowas verzichten.

              Struppi.

              nein, meiner meinung nach gibt es NICHT nur Netscape und IE. Ich rechne des weiteren nicht mit übermäßig hohen benutzerzahle. kann mir vielleicht jemand mal ein kleines, funktionsfähiges script posten?!

              1. nein, meiner meinung nach gibt es NICHT nur Netscape und IE. Ich rechne des weiteren nicht mit übermäßig hohen benutzerzahle. kann mir vielleicht jemand mal ein kleines, funktionsfähiges script posten?!

                solang du nicht sagst, was du genau willst geht das nicht. Wie gesagt die Browser die du meinst kennen ab den 4'er Versionen das DIV Tag. Insofern macht deine Frage irgendwie keinen Sinn.

                CSS Kann dir helfen deine Seite zu gestalten, das war aber nur ein Schuss ins blaue da du ja nicht sagst was du eigwentlich willst.

                Struppi.

                1. nein, meiner meinung nach gibt es NICHT nur Netscape und IE. Ich rechne des weiteren nicht mit übermäßig hohen benutzerzahle. kann mir vielleicht jemand mal ein kleines, funktionsfähiges script posten?!

                  solang du nicht sagst, was du genau willst geht das nicht. Wie gesagt die Browser die du meinst kennen ab den 4'er Versionen das DIV Tag. Insofern macht deine Frage irgendwie keinen Sinn.

                  CSS Kann dir helfen deine Seite zu gestalten, das war aber nur ein Schuss ins blaue da du ja nicht sagst was du eigwentlich willst.

                  Struppi.

                  also: ich möchte, dass wenn jemand auf meine seite geht und z.B. den IE nutzt, die index.html lädt, in der das script ist. dieses soll feststellen, welchen browser der User nutzt (im Beispiel der IE) und anhand dieser Information die passende seite lädt.

                  ich möchte ein jscript-menü machen, dass mit ONMOUSEOVER, ONMOUSEOUT und ONFOCUS arbeitet, und meines wissens kennt der nn diese attribute auch nicht.

                  1. also: ich möchte, dass wenn jemand auf meine seite geht und z.B. den IE nutzt, die index.html lädt, in der das script ist. dieses soll feststellen, welchen browser der User nutzt (im Beispiel der IE) und anhand dieser Information die passende seite lädt.

                    welchen IE?
                    Was möchtest du feststellen, es gibt ca. ein dutzend Versionen die sich teilweise enorm unterscheiden.

                    ich möchte ein jscript-menü machen, dass mit ONMOUSEOVER, ONMOUSEOUT und ONFOCUS arbeitet, und meines wissens kennt der nn diese attribute auch nicht.

                    auch das stimmt nicht, und nach wie vor Wissen wir nicht von welchen Netscape du redest.

                    du musst bedenken, das nicht jeder das auf dem Rechner hat was du hast. Ich hab dir den Link von evolt.org gezeigt dort sind wohl ca. 1000 verschiedenen Browser verewigt, denn es gibt nicht nur die verschiedenen Versionen sondern auch verschiedenen Betriebsysteme.

                    Struppi.

                    1. also: ich möchte, dass wenn jemand auf meine seite geht und z.B. den IE nutzt, die index.html lädt, in der das script ist. dieses soll feststellen, welchen browser der User nutzt (im Beispiel der IE) und anhand dieser Information die passende seite lädt.

                      welchen IE?
                      Was möchtest du feststellen, es gibt ca. ein dutzend Versionen die sich teilweise enorm unterscheiden.

                      ich möchte ein jscript-menü machen, dass mit ONMOUSEOVER, ONMOUSEOUT und ONFOCUS arbeitet, und meines wissens kennt der nn diese attribute auch nicht.

                      auch das stimmt nicht, und nach wie vor Wissen wir nicht von welchen Netscape du redest.

                      du musst bedenken, das nicht jeder das auf dem Rechner hat was du hast. Ich hab dir den Link von evolt.org gezeigt dort sind wohl ca. 1000 verschiedenen Browser verewigt, denn es gibt nicht nur die verschiedenen Versionen sondern auch verschiedenen Betriebsysteme.

                      Struppi.

                      es gibt also keine verallgemeinerung für den navigator (irgendeinen)wie z.B. if (Hersteller == Netscape) ...

                      ich hab von javascript in dieser beziehung keine ahnung, also bitte nicht über kardinalfehler ärgern

                      1. es gibt also keine verallgemeinerung für den navigator (irgendeinen)wie z.B. if (Hersteller == Netscape) ...

                        Ja den gibt es navigator.appName (oder so, ich hab das noch nie benutzt) nur ist der für nichts sinnvolles zu verwenden.

                        ich hab von javascript in dieser beziehung keine ahnung, also bitte nicht über kardinalfehler ärgern

                        Dein Kardinalfehler scheint das Skript an sich zu sein, da es anscheind nicht richitg funktioniert, da du die ganze Zeit behauptest Netscape könnte Dinge nicht, die er in einigen Versionen sehr wohl kann.

                        Falls du das Skript selber geschrieben hast, solltest du in dem Skript entsprechende Prüfungen einbauen.

                        z.b. um einen Layer zu bekommen ist eine Funktion in etwa so sinnvoll:

                        function getLayer(id)
                        {
                        if(!id) return null;
                        if(document.getElementById) return document.getElementById(id);
                        else if(document.all) return document.all[id];
                        else if (document.layers) return document.layers[id];
                        return null;
                        }

                        Dann reicht auch eine Seite.

                        Struppi.

                        1. es gibt also keine verallgemeinerung für den navigator (irgendeinen)wie z.B. if (Hersteller == Netscape) ...

                          Ja den gibt es navigator.appName (oder so, ich hab das noch nie benutzt) nur ist der für nichts sinnvolles zu verwenden.

                          ich hab von javascript in dieser beziehung keine ahnung, also bitte nicht über kardinalfehler ärgern

                          Dein Kardinalfehler scheint das Skript an sich zu sein, da es anscheind nicht richitg funktioniert, da du die ganze Zeit behauptest Netscape könnte Dinge nicht, die er in einigen Versionen sehr wohl kann.

                          Falls du das Skript selber geschrieben hast, solltest du in dem Skript entsprechende Prüfungen einbauen.

                          z.b. um einen Layer zu bekommen ist eine Funktion in etwa so sinnvoll:

                          function getLayer(id)
                          {
                          if(!id) return null;
                          if(document.getElementById) return document.getElementById(id);
                          else if(document.all) return document.all[id];
                          else if (document.layers) return document.layers[id];
                          return null;
                          }

                          Dann reicht auch eine Seite.

                          Struppi.

                          ok, wenn ich jetzt also alles richtig verstanden habe, dann brauche ich bei dem heutigen stand der software KEIN browserscript, sondern einfach nur die normale seite?!
                          wird dann auch das menü, das u.a. auch mit visibility = "visible" bzw. "hidden" mit jedem browser korrekt angezeigt?

                          1. N'Obend

                            ok, wenn ich jetzt also alles richtig verstanden habe, dann brauche ich bei dem heutigen stand der software KEIN browserscript, sondern einfach nur die normale seite?!
                            wird dann auch das menü, das u.a. auch mit visibility = "visible" bzw. "hidden" mit jedem browser korrekt angezeigt?

                            Teste es.

                            IE, Netscape 4 und Mozilla stören sich nich nebeneinander (N4 nervt etwas, weil e meint sich als Standard eintragen zu müssen, aber sonst...)

                            Wenn du es halbwegs ernst meinst mit dem Seitenerstellen musst du das eh machen.

                            Ein paar ältere IE schaden auch nicht, lynx sollte man auf jeden Fall auch mal verwenden.

                            Ältere IE zum entpacken und wohlfühlen: http://www.skyzyx.com/downloads/
                            Die funktionieren ohne Installation und stören sich nicht.

                            Tschö,
                            dbenzhuser

                            1. Die funktionieren ohne Installation und stören sich nicht.

                              Vorsicht, so wohl nur unter xp, ggf. w2k.

                              Grüsse

                              Cyx23

          2. Hallo,

            probier das mal aus:
            <script>alert(navigator.appName);alert(navigator.userAgent);</script>

            Der userAgent ist allerdings zur Browsererkennung schlecht geeignet.

            Gruß,
            CurtB

            1. Hallo,

              probier das mal aus:
              <script>alert(navigator.appName);alert(navigator.userAgent);</script>

              Der userAgent ist allerdings zur Browsererkennung schlecht geeignet.

              Gruß,
              CurtB

              gut, da krieg ich eine meldung, welchen browser ich nutze, aber wie soll sich das auf die seite, die geladen wird, auswirken?

              1. gut, da krieg ich eine meldung, welchen browser ich nutze, aber wie soll sich das auf die seite, die geladen wird, auswirken?

                Du könntest dich über strings (JavaScript) informieren und abfragen ob
                etwa bestimmte Zeichen im useragent vorkommen.

                Besser kann es aber sein typische Eigenschaften wie ActiveXObject abzufragen:

                <script>
                if(window.ActiveXObject)location.href='about:mozilla';else self.close();
                </script>

        2. Servus nanomaster

          document.layers

          if

          href

          Damit sollte man was anfangen können, denn:

          Zwar gibt es die Möglichkeit, den Namen des Browsers abzufragen, da kann dir aber jeder senden wozu er gerade lusst hat, bei Opera sogar einfach per DropDown-Menü. Was dagegen viel besser ist, ist wie oben genannt, die Browser an ihren individuellen Eigenschaften zu erkennen.
          Netscape kann Layer, frag also ab ob der Browser Layer kennt (eben wie oben mit if(document.layers)). Opera hat window.opera (glaub ich) und für den IE gibts sich auch genug Möglichkeiten.

          Wenn du aber eine hübsch valide Seite baust, dann sollten alle Browser (zumindest mit den ihnen zur Verfügung stehenden Mitteln) damit zurecht kommen. Sorgenkind ist hier CSS, dafür gibt es aber eine Menge Browserweichen, mit denen man ziemlich treffsicher die paar größeren auseinanderhalten kann. So versteckst du z.B. einfach vor Netscape 4 die paar CSS-Sachen, die er nicht kann, schon läuft es.

          Vorteile:
          Kein JS benötigt, weniger Verwaltungsaufwand deinerseits.

          Falls du übrigens doch was mit JS machen willst, dann bitte auf keinen Fall

          {
           if (br == "nn")
                document.location.href = "nn/homepage.html";
           else
                document.location.href = "ie"homepage.html";
          }

          Wenn dann solltest du nur dann umleiten, wenn z.B. ein Netscape (4) auf die Seite kommt, und sonst bei der aktuellen bleiben. Sonst sind Leute ohne JS (davon gibts tatsächlich einige) total aufgeschmissen. (Bzw. du, denn du willst sie ja auf deine Seite haben)

          Tschö,
          dbenzhuser

      2. keine Ahnung wofür du es brauchst aber ich kann mir grad keinen Fall vorstellen wo sowas nötig wäre.

        Struppi.

        wow,danke,tolle antwort.

        Naja, deine Frage war auch nicht besonders, denn

        ich hab eine seite für den IE, da sind lauter div-container drin.
        Netscape kann mit sowas ja nichts anfangen, also: layer

        Du scheinst nicht Wissen wovon du sprichst, sowohl Netscape 7 (oder Mozilla) als auch Netscape 4.x, den du offensichtlich meinst, kennen das HTML Tag DIV.

        deswegen möchte ich, dass für die jeweilige Browser-version die entsprechende Page lädt

        Das ist nicht notwendig, wenn man weiss was man tut. du solltest dir mal einige Seiten (vielleicht mit selfhtml anfangen) über CSS an tun.

        Struppi.

        1. wow,danke,tolle antwort.

          Naja, deine Frage war auch nicht besonders, denn

          ich hab eine seite für den IE, da sind lauter div-container drin.
          Netscape kann mit sowas ja nichts anfangen, also: layer

          Du scheinst nicht Wissen wovon du sprichst, sowohl Netscape 7 (oder Mozilla) als auch Netscape 4.x, den du offensichtlich meinst, kennen das HTML Tag DIV.

          deswegen möchte ich, dass für die jeweilige Browser-version die entsprechende Page lädt

          Das ist nicht notwendig, wenn man weiss was man tut. du solltest dir mal einige Seiten (vielleicht mit selfhtml anfangen) über CSS an tun.

          Struppi.

          ok, zugegeben, die frage war undeutlich, einiges hab ich übersehen.
          ich bräuchte aber trotzdem ein solches script, die gründe seien dahingestellt.
          nano

          PS.: selfhtml hab ich mir schon zu gemüte geführt, aber wie kann mir CSS da helfen?

  2. hi,
    kann mir von euch jemand ein zuverlässiges browsererkennungsscript sagen?
    es soll beim laden zwischen Netscape und IE unterscheiden und dann die entspr. seite laden.
    thx im voraus,
    nano

    so, also, ich hab meine seite jetzt mal in Mozilla getestet. das menü,das im IE mit schwarzem hintergrund erscheint, komm in mozilla nur als normaler text. das nur zur info

    1. so, also, ich hab meine seite jetzt mal in Mozilla getestet. das menü,das im IE mit schwarzem hintergrund erscheint, komm in mozilla nur als normaler text. das nur zur info

      Dann scheint das Skript nicht so doll zu sein. Mozilla hat auf jeden Fall vergleichbare Fähigkeiten wie IE 6 (falls du von diesem IE sprichst).
      ich vermute mal schwer das dein Skript document.all verwendet, was aus Zeiten des IE 4 stammt aber immer noch funktioniert in neueren, allerdings in keinen anderen Browser (ich glaub in Opera noch wenn man ihn als IE zu erkennen gibt). Du solltest dein Skript mit DOM Methoden ausstatten dann funktioniert es nicht nur im IE sondern auch noch in einigen anderen browsern.

      Struppi.

    2. Hi nanomaster,

      </faq/#Q-09a>
      http://learn.to/quote

      so, also, ich hab meine seite jetzt mal in Mozilla getestet. das menü,das im IE mit schwarzem hintergrund erscheint, komm in mozilla nur als normaler text. das nur zur info

      Dann solltest du endlich zur Kenntnis nehmen, dass dein Code sch**sse ist.
      Ich kann mir keinen validen Fall vorstellen, den der IE bewältigt und Mozilla nicht.
      Vielleicht solltest du deine Seiten mal hier testen: http://validator.w3.org/
      http://jigsaw.w3.org/css-validator/validator-uri.html
      Ich möchtte beinah darauf wetten, dass die Fehlanzeige wegen invalidem Code entsteht.

      Gruß

      Kurt

      --
      > Nein, ich beantworte keine Anfragen per e-mail.
      "Wer nicht gerne denkt, sollte wenigstens von Zeit zu Zeit seine Vorurteile neu gruppieren."  (Luther Burbank; am. Biologe; 1849-1926)
      http://elektro-dunzinger.at
      http://shop.elektro-dunzinger.at
      1. so, also, ich hab meine seite jetzt mal in Mozilla getestet. das menü,das im IE mit schwarzem hintergrund erscheint, komm in mozilla nur als normaler text. das nur zur info

        Dann solltest du endlich zur Kenntnis nehmen, dass dein Code sch**sse ist.

        dem kann ich zustimmen, nur ...

        http://validator.w3.org/

        http://jigsaw.w3.org/css-validator/validator-uri.html

        .. nützt ihm das bei JS wenig. sondern eher http://glasgoogle.de

        Struppi.

        1. Hi Struppi,

          http://validator.w3.org/

          http://jigsaw.w3.org/css-validator/validator-uri.html

          .. nützt ihm das bei JS wenig. sondern eher http://glasgoogle.de

          Uups, auf die Idee bin ich noch gar nicht gekommen, dass jemand seinen Hintergrund mit JS definiert...
          Sorry, zu flüchtig gelesen... ;-)

          Gruß

          Kurt

          --
          > Nein, ich beantworte keine Anfragen per e-mail.
          "Verstand ohne Gefuehl ist unmenschlich, Gefuehl ohne Verstand ist Dummheit."  (Egon Bahr; dt. Journalist u. Politiker; geb. 1922)
          http://elektro-dunzinger.at
          http://shop.elektro-dunzinger.at
  3. hi,
    kann mir von euch jemand ein zuverlässiges browsererkennungsscript sagen?
    es soll beim laden zwischen Netscape und IE unterscheiden und dann die entspr. seite laden.
    thx im voraus,
    nano

    wenns hilft kann ich ja mal den code des menüs posten, sollte das nicht zu lang sein für die hiesigen verhältnisse.
    nano

    1. wenns hilft kann ich ja mal den code des menüs posten, sollte das nicht zu lang sein für die hiesigen verhältnisse.

      Besser wäre ein Link (Testseite).

      Struppi.

      1. http://www.olba4ever.de.vu/Klassenhomepage/

        bitteschön

        1. http://www.olba4ever.de.vu/Klassenhomepage/

          wie schon zu erwarten war:

          {document.all.UM1.style.backgroundColor = "#000000"}

          Du benutzt IE 4 syntax.
          Wie du mehr Browser anprichst http://selfhtml.teamone.de/dhtml/index.htm

          Außerdem kannst du das obige wesentlich verienfachen.

          statt für jede Farbe  eine funktion zu bauen:
          function um1()
          {document.all.UM1.style.backgroundColor = "#000000"}
          function um2()
          {document.all.UM2.style.backgroundColor = "#000000"}

          reicht eine:

          function um(nr)
          {
          if(!document.getElementById) return;

          var obj = document.getElementById('UM' + nr);
          if(!obj || !obj.style) return;
          obj.style.backgroundColor = "#000000"}

          }

          und in den Links muss du der Funktion halt die Nummer als Parameter übergeben.

          Du solltest das Untermenü auch nicht auf hidden stellen, sondern erst mit JS verstecken, dann können es auch besucher die JS nicht benutzten können, wollen oder dürfen etwas mit dem Menü anfangen.

          Struppi.

          1. {document.all.UM1.style.backgroundColor = "#000000"}

            Du benutzt IE 4 syntax.

            wie wäre denn valide, browserübergreifende Syntax?
            werde aus dem link nicht so schlau...

            Wie du mehr Browser anprichst http://selfhtml.teamone.de/dhtml/index.htm

            reicht eine:

            function um(nr)
            {
            if(!document.getElementById) return;

            var obj = document.getElementById('UM' + nr);
            if(!obj || !obj.style) return;
            obj.style.backgroundColor = "#000000"}
            }

            hab ich gemacht, funktioniert prima

            Du solltest das Untermenü auch nicht auf hidden stellen, sondern erst mit JS verstecken,

            und wie mach ich das?

            1. wie wäre denn valide, browserübergreifende Syntax?
              werde aus dem link nicht so schlau...

              Wie ich es unten schrieb.

              Du solltest das Untermenü auch nicht auf hidden stellen, sondern erst mit JS verstecken,

              und wie mach ich das?

              Hier sind eine paar Sandardfunktionen.
              http://home.arcor.de/struebig/js/lib/layer.js

              Die meisten Sachen stehen auch in selfhtml, bevor du weitermachst wäre ein bisschen Lektüre angesagt.
              Übrigens sagt dir Mozilla auch was du falsch machst und das wesentlich besser als der IE. Unter Tools->Web Development  findest du die Javascript Konsole, die dir alle Fehler genaustens anzeigt.

              Struppi.