Jo: Firefox 2 | 3

Hallo,

wie kann ich zuverlässig ermitteln, ob es sich bei einem Client um Firefox 2.x oder 3.x handelt?

Danke
Jo

  1. Eine mehr oder minder zuverlässige Möglichkeit bietet das Auslesen von navigator.userAgent; darüber hinaus könnte man versuchen, auf solche Eigenschaften verschiedener Objekte zuzugreifen, die nur Firefox3 kennt... viel Spaß beim Suchen.

    Gruß, LX

    --
    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: Unusual
    X-Please-Search-Archive-First: Absolutely Yes
    1. Eine mehr oder minder zuverlässige Möglichkeit bietet das Auslesen von navigator.userAgent; darüber hinaus könnte man versuchen, auf solche Eigenschaften verschiedener Objekte zuzugreifen, die nur Firefox3 kennt... viel Spaß beim Suchen.

      wobei sich natürlich die frage stellt, warum das gewünscht wird

      1. wobei sich natürlich die frage stellt, warum das gewünscht wird

        Weil Firefox 3 bei Doppelklick (Event-Handling mit Prototype) den Focus auf ein DIV verliert, Firefox 2 aber nicht, und das ist in meiner Anwendung ein Problem.
        Jo

        1. Weil Firefox 3 bei Doppelklick (Event-Handling mit Prototype) den Focus auf ein DIV verliert, Firefox 2 aber nicht, und das ist in meiner Anwendung ein Problem.

          das ist ein grund, ja

          du könntest beim changelog des firefox ansetzten und objekte oder methoden suchen, die im firefox 3 neu dazugekommen sind - somit könntest du rudimentär anhand der fähigkeiten bestimmen, was es für ein browser ist

          derartige scripte gibt es zuhauf im netz - aber die sind meistens wertlos und fehlerhaft oder enorm überladen - in den meisten frameworks sollten derartige methodiken aber schon enthalten sein "Prototype.Browser" könnte für dich das richtige stichwort sein

          1. Hi,
            danke für den hint, mit folgendem Script bekomm ich im ersten Schritt Version 2 von 3 getrennt:

            if (Prototype.Browser.Gecko && navigator.userAgent.match(/Firefox.[012]/)) {
             alert ("Version 2");
             }
             else {
             alert("Version 3");
             }

            Leider aber auch nur mit userAgent und das ist ja verboten...;-)

            Jo

            1. Leider aber auch nur mit userAgent und das ist ja verboten...;-)

              verboten nicht, aber nicht zielführend ;)

          2. Tach,

            du könntest beim changelog des firefox ansetzten und objekte oder methoden suchen, die im firefox 3 neu dazugekommen sind - somit könntest du rudimentär anhand der fähigkeiten bestimmen, was es für ein browser ist

            große Sprünge wurden von Javascript 1.7 zu 1.8 ja nicht gemacht, aber Arrays kennen die neue Methode reduce, die man abfragen kann:

            if((new Array).reduce){  
              alert(Javascript 1.8);  
            }else{  
              alert(Javascript 1.7);  
            }
            

            mfg
            Woodfighter

    2. Hi,

      Kurz-Info an Eingeweide, äh, Eingeweihte:

      Eine mehr oder minder zuverlässige Möglichkeit bietet das Auslesen von navigator.userAgent;

      Der liebe LX bekam gerade für diesen groben Unfug einen Rüffel bekommen ;-) Soll heißen: Kids, don't try this at home.

      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
      1. Eine mehr oder minder zuverlässige Möglichkeit
        Soll heißen: Kids, don't try this at home.

        er hätte "minder" betonen sollen, etwa so "___***MINDER***___" :p