Jens: Wie kann man Opera erkennen

Hallo.

Weiss jemand, wie (und ob überhaupt) man mit Javascript ermitteln kann, dass der Benutzer Opera als Browser benutzt [natürlich ohne, dass dessen Benutzer in den Netzwerkeinstellungen des Opera einstellt "als Opera ausgeben"]?

Danke und viele Grüße
Jens

  1. opera = navigator.userAgent.indexOf("opera");

    if (opera == -1) alert("Alles klar!");
    else alert("Scheiße");

    Gruß
    Avalon

    1. Hi,

      opera = navigator.userAgent.indexOf("opera");

      Unfug. window.opera existiert.

      Cheatah

      --
      X-Will-Answer-Email: No
      X-Please-Search-Archive-First: Absolutely Yes
      1. Hallo,

        allerdings unterscheidet window.opera nicht zwischen alten und neuen Versionen. Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte. Ich habe daher

        if (document.getElementsByTagName('body')[0].replaceChild)

        anstelle des oft gewählten

        if (document.getElementById)

        als DOM-Test genommen.

        Gruß, Jürgen

        1. Hallo Jürgen,

          Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte.

          nö.

          Wenn es bei dir bislang so geklappt hat, schön für dich, zumal m.E. Opera 7.5 der Preview zufolge etwas besser geworden ist.

          Grüsse

          Cyx23

          1. Hallo,

            Opera macht unter Javascript auch nur dann Probleme, wenn man unter Verion 6 oder älter mit DOM-Methoden Inhalte ändern möchte.

            nö.

            warum nö? Ich ändere mittels xxx.nodeValue oder xxx.innerHTML den Inhalt von Knoten. Die alten Operas unterstützten das nicht, die ab 7 schon. Mit der Abfrage im Posting wurden die 6er und älter abgeblockt, die 7er kamen durch.

            Gruß, Jürgen

            1. Hallo,

              Opera macht unter Javascript auch nur dann Probleme, wenn man [...]

              nö.
              warum nö?

              weil vereinfacht ausgedrückt m.E. bislang alle Operaversionen mit JavaScript recht eigen, um nicht zu sagen buggy, waren.

              Löblich aber die Fortschritte bei 7.5pr.

              Ich ändere mittels xxx.nodeValue oder xxx.innerHTML den Inhalt von Knoten. Die alten Operas unterstützten das nicht, die ab 7 schon.

              Und wie stehts damit:

              <noscript>test</noscript>
               <script>
                alert(document.getElementsByTagName("noscript")[0].innerHTML)
               </script>

              Grüsse

              Cyx23

              1. Hallo,

                naja, stimmt wohl, das kann er nicht, aber wie oft prüft man unter JS wie der <noscript> aussieht?

                Gruß, Jürgen

      2. window.opera existiert.

        Was es nicht alles gibt...

        Danke!!!

        1. Hallo,

          window.opera existiert.

          zumindest bei Opera ab Version 5, wird dazu im Gegensatz zu window.netscape bislang auch nicht von anderen Browsern angeboten, und passt direkt zu der geforderten Unterscheidung.

          Was es nicht alles gibt...

          Hier zum Thema Browsererkennung durch JavaScript  http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html noch ein Beispiel für weitergehende Unterscheidungen, fast immer anhand von Browserfähigkeiten und nicht dem user-agent.
          Ideal ist es natürlich wenn die angefragte Fähigkeit auch mit der jeweiligen Aufgabe zu tun hat, so ist wohl auch der Ansatz von Jürgen mit if (document.getElementsByTagName('body')[0].replaceChild) gedacht, der allerdings einen <body> abfragt, und daher als Weiche für moderne Browser nur nach dem body-tag oder nach onload geeignet wäre.

          Grüsse

          Cyx23

          1. Hallo,

            Hier zum Thema Browsererkennung durch JavaScript  http://www.lipfert-malik.de/webdesign/tutorial/bsp/browser_js_test.html noch ein Beispiel für weitergehende Unterscheidungen, fast immer anhand von Browserfähigkeiten und nicht dem user-agent.

            Sehr schöne Übersicht.
            Allerdings wird Opera 7.23 als Opera 7.5 identifiziert... getComputedStyle muss irgendwo zwischen 7.11 und 7.23 implementiert worden sein. Opera 7.21 (auf schwedisch...) ist der einzige, den ich dazwischen noch bekommen konnte, und der kann es, wird also auch als 7.5 eingestuft.

            Mathias

            1. Opera 7.5p2 kann übrigens neuerdings die Methode window.navigate, siehe http://people.opera.com/tim/changelogs/w750p2.html, vielleicht eignet sich das für eine Unterscheidung.