Fabian: schon wieder opera identifizieren

Hi!

Ich muss mit javascript Opera vom IE unterscheiden können, weil der IE halbtransparente PNG-bilder nur über irgendwelche Filter unterstützt  unterstützt.

Jetzt hab' ich im Forum gestöbert und bin auf folgendes gekommen:

if(document.all && document.getElementById && navigator.appName == "Microsoft Internet Explorer"){
 if (!(navigator.userAgent.indexOf("Opera")>-1 || window.opera || window.opera7)){
    echo "IE und kein Opera";
  }
}

Könnt ihr mir helfen und sagen, ob das jetzt so funktioniert. Im neusten Opera hab ich s schon getestet und es geht - die älteren Opera-Versionen müssten noch getestet werden ... und auch ob das Ganze im IE funktioniert - da kann ich das Ganze momentan nicht testen.

Kann mir jemand helfen?

Gruß, Fabian.

  1. Hi!

    Ich muss mit javascript Opera vom IE unterscheiden können, weil der IE halbtransparente PNG-bilder nur über irgendwelche Filter unterstützt  unterstützt.

    Jetzt hab' ich im Forum gestöbert und bin auf folgendes gekommen:

    if(document.all && document.getElementById && navigator.appName == "Microsoft Internet Explorer"){
     if (!(navigator.userAgent.indexOf("Opera")>-1 || window.opera || window.opera7)){
        echo "IE und kein Opera";
      }
    }

    <Cheatah>
    Die Abfrage der User-Agent-Kennung ist völlig sinnfrei, da diese beliebig gefälscht werden kann.
    </Cheatah>

    Den IE allein anhand der User-Agent-Kennung einwandfrei zu erkennen wird nicht funktionieren, da man auch bei anderen Browsern als dem Opera (wenn man's drauf anlegt sogar beim IE) die User-Agent-Kennung änder kann.

    Prüfe lieber, wenn es JavaScript sein muss, auf die IE-spezifischen Eigenschaften, Elemente oder Methoden.

    Gruß,

    Johannes

    --
    ss:| zu:} ls:[ fo:} de:] va:} ch:) sh:( n4:| rl:( br:< js:| ie:{ fl:( mo:}
    http://www.zeller-johannes.de/
    1. Prüfe lieber, wenn es JavaScript sein muss, auf die IE-spezifischen Eigenschaften, Elemente oder Methoden.

      Bisher funktioniert das Script so... An welche Eigenschaften denkst du denn?

      Fabian

      1. Moin!

        Bisher funktioniert das Script so... An welche Eigenschaften denkst du denn?

        function ie4() {
          if (document.all) {
             alert: ("Internet Explorer ab Version 4" );
          }
        return true;
        }

        MFFG (Mit freundlich- friedfertigem Grinsen)

        fastix®

        --
        Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
        1. Moin!

          Sorry War ein Schnellschuß...

          function ie4() {
             if (document.all) {
                alert("Internet Explorer ab Version 4" );
                return true;
             }
             return false;
          }

          MFFG (Mit freundlich- friedfertigem Grinsen)

          fastix®

          --
          Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
          1. hi,

            function ie4() {
               if (document.all) {
                 alert("Internet Explorer ab Version 4" );

            wenn der opera so eingestellt ist, dass er sich bei der identifizierung als IE version xy ausgibt, versucht er auch möglichst kompatibelzu diesem zu sein - sprich dann kennt er auch das object document.all.

            dein script wird mir also die meldung
            "Internet Explorer ab Version 4"
            als alert-fenster bringen, wenn mein opera darauf eingestellt ist, sich als IE auszugeben.

            gruss,
            wahsaga

            1. Hallo wahsaga,

              hi,

              function ie4() {
                 if (document.all) {
                   alert("Internet Explorer ab Version 4" );

              wenn der opera so eingestellt ist, dass er sich bei der identifizierung als IE version xy ausgibt, versucht er auch möglichst kompatibelzu diesem zu sein - sprich dann kennt er auch das object document.all.

              Verständnisfrage:
              Aber über window.opera müsste er in diesem Fall dennoch identifizierbar sein oder?
              So in der Art (document.all && !window.opera)
              Oder irre ich mich da?

              Gruß

              Kurt

              --
              "Misstrauen ist eine schlechte Ruestung, die mehr hindern als schirmen kann."  (George Lord Byron; engl. Dichter; 1788-1824)
              http://elektro-dunzinger.at
              http://shop.elektro-dunzinger.at
              1. hi,

                Verständnisfrage:
                Aber über window.opera müsste er in diesem Fall dennoch identifizierbar sein oder?

                ich denke, ja.
                wenn du's sicher wissen willst, probierst du's aus :-)

                gruss,
                wahsaga

                1. Hallo wahsaga,

                  Verständnisfrage:
                  Aber über window.opera müsste er in diesem Fall dennoch identifizierbar sein oder?

                  ich denke, ja.
                  wenn du's sicher wissen willst, probierst du's aus :-)

                  Nee du, so genau wollte ich es ja gar nicht wissen, es ging mir ja nur ums Verständnis. ;-)
                  Meine Browserweiche funktioniert und das genügt mir. :-)

                  Gruß

                  Kurt

                  --
                  "Viele Leute kaufen mit Geld, was sie nicht haben. Dinge, die sie nicht brauchen, um Leuten zu imponieren, die sie nicht ausstehen koennen."  (Sprichwort)
                  http://elektro-dunzinger.at
                  http://shop.elektro-dunzinger.at
            2. Moin!

              wenn der opera so eingestellt ist, dass er sich bei der identifizierung als IE version xy ausgibt, versucht er auch möglichst kompatibelzu diesem zu sein - sprich dann kennt er auch das object document.all.

              Oh Scheisse!

              Führt er dann auch diese netten Visual Basci- Scripte, die Dialer und Würmer installieren, aus?
              Das wäre "bestmögliche" Kompatibiltät!

              MFFG (Mit freundlich- friedfertigem Grinsen)

              fastix®

              --
              Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Development. Auch  für seriöse Agenturen.
              1. hi,

                Oh Scheisse!

                Führt er dann auch diese netten Visual Basci- Scripte, die Dialer und Würmer installieren, aus?
                Das wäre "bestmögliche" Kompatibiltät!

                nein, keine sorge, so weit treibt er's natürlich nicht :-)

                gruss,
                wahsaga

    2. hi,

      Die Abfrage der User-Agent-Kennung ist völlig sinnfrei, da diese beliebig gefälscht werden kann.
      </Cheatah>

      Den IE allein anhand der User-Agent-Kennung einwandfrei zu erkennen wird nicht funktionieren, da man auch bei anderen Browsern als dem Opera (wenn man's drauf anlegt sogar beim IE) die User-Agent-Kennung änder kann.

      Wenn mans drauf anlegt und auch macht, ist man meiner Meinung nach selbst schuld, wenn die Seite nicht fuktioniert.

      ....und weiß dann wahrscheinlich auch worans liegen könnte.

      Tipp zur Opera-Erkennung gibts bei Opera:

      http://www.opera.com/support/search/supsearch.dml?index=570

      und noch mehr Tipps zu Opera gibts auch bei Opera:

      http://www.opera.com/support/service/webdev/

      gruß
      ptr

  2. Moin!

    Ich muss mit javascript Opera vom IE unterscheiden können, weil der IE halbtransparente PNG-bilder nur über irgendwelche Filter unterstützt  unterstützt.

    Nein, mußt du nicht.

    Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch, die dort vorgestellte Methode löst das Problem sehr elegant und kompatibel, würde ich meinen.

    - Sven Rautenberg

    --
    Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!
    1. Hi,

      Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch,

      Stimmt die URL? Ich krieg wiederholt "Server not found"

      cu,
      Andreas

      --
      MudGuard? Siehe http://www.mud-guard.de/
      1. Moin!

        Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch,

        Stimmt die URL? Ich krieg wiederholt "Server not found"

        Die URL stimmt - mit dem Server stimmt aber was nicht.

        Es ist Fundstelle Nr. 1 hier: http://www.google.com/search?num=50&hl=de&ie=UTF-8&oe=utf-8&q=png+transparency+filter&btnG=Google+Suche

        - Sven Rautenberg

        --
        Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!
        1. Hi,

          Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch,
          Stimmt die URL? Ich krieg wiederholt "Server not found"
          Die URL stimmt - mit dem Server stimmt aber was nicht.

          Ok, dann werd ich es später wieder probieren...

          cu,
          Andreas

          --
          MudGuard? Siehe http://www.mud-guard.de/
          1. Hi Andreas,

            Die URL stimmt - mit dem Server stimmt aber was nicht.

            Ok, dann werd ich es später wieder probieren...

            http://216.239.59.104/search?q=cache%3ACpe4F0_RvZAJ%3Awebfx.eae.net%2Fdhtml%2Fpngbehavior%2Fpngbehavior.html hilft :-)

            Grüße,
             Roland

    2. hi,

      Nein, mußt du nicht.

      Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch, die dort vorgestellte Methode löst das Problem sehr elegant und kompatibel, würde ich meinen.

      ein kurzer blick sagt mir, dass diese lösung auf javascript basiert - seit wann bezeichnest du sowas als elegant und kompatibel?

      zumal es damit bei jedem sicherheitsbewussten IE-nutzer (oxymoron?) _nicht_ "funktionieren" wird, da dieser ja active scripting auf eindringliche weisung des herstellers deaktiviert hat ...

      gruss,
      wahsaga

      1. Hi,

        zumal es damit bei jedem sicherheitsbewussten IE-nutzer (oxymoron?)

        mal wieder ein neues Wort gelernt (http://de.wikipedia.org/wiki/Oxymoron) - oder hätte man das kennen müssen? ;-)
        freundliche Grüße
        Ingo

        1. Hallo Ingo,

          mal wieder ein neues Wort gelernt (http://de.wikipedia.org/wiki/Oxymoron) - oder hätte man das kennen müssen? ;-)

          Eigentlich schon. ;-)

          Viele Grüße,
          Christian

          1. Hi Christian,

            das hätte ohne den Smile aber jetzt mein Selbstvertrauen angeknackst..;-)
            Aber ich muß zugeben, daß mir die Wortzusammensetzung sehr gefällt.

            freundliche Grüße
            Ingo

          2. Hallo Christian,

            mal wieder ein neues Wort gelernt (http://de.wikipedia.org/wiki/Oxymoron) - oder hätte man das kennen müssen? ;-)

            Eigentlich schon. ;-)

            Zumindest wenn man die gymnasiale Oberstufe absolviert hat ;-)
            Vorher ist mir dieses Wort auch noch nie begegnet.

            Schöne Grüße,

            Johannes

            --
            ss:| zu:} ls:[ fo:} de:] va:} ch:) sh:( n4:| rl:( br:< js:| ie:{ fl:( mo:}
            http://www.zeller-johannes.de/
            1. Hi,

              Zumindest wenn man die gymnasiale Oberstufe absolviert hat ;-)
              Vorher ist mir dieses Wort auch noch nie begegnet.

              da bin ich ja jetzt endgültig beruhigt - in der FHS hatte ich eher praktische Dinge gelernt..;-)

              freundliche Grüße
              Ingo

      2. Moin!

        Lies http://webfx.eae.net/dhtml/pngbehavior/pngbehavior.html durch, die dort vorgestellte Methode löst das Problem sehr elegant und kompatibel, würde ich meinen.

        ein kurzer blick sagt mir, dass diese lösung auf javascript basiert - seit wann bezeichnest du sowas als elegant und kompatibel?

        Weil es auf behaviours aufbaut. Die sind zwar ganz böse standard-inkompatibel, aber die Lösung hat den Vorteil, dass für alle Nicht-IEs die Behaviours sowieso schon mal komplett ignoriert werden.

        zumal es damit bei jedem sicherheitsbewussten IE-nutzer (oxymoron?) _nicht_ "funktionieren" wird, da dieser ja active scripting auf eindringliche weisung des herstellers deaktiviert hat ...

        Es dürfte dann aber auch egal sein, weil die Aktivierung von Transparenz in meinen Augen keine wirklich gravierdenden Bedienungsänderungen erlauben dürfte.

        - Sven Rautenberg

        --
        Die SelfHTML-Developer sagen Dankeschön für aktuell 20885,68 Euro Spendengelder!