Browser Erkennung
Stephan
- javascript
0 David Tibbe0 Cheatah0 stephan0 Cyx230 Chräcker Heller0 Tobias Kloth0 Orlando0 Cheatah
0 Maxx0 Cybaer
Hallo Forum,
habe viel Zeit damit verbracht herauszufinden wie man Opera identifizieren kann. Hier im Forum war nix brauchbares dazu.
Jetzt habe ich was gefunden und möchte es den anderen nicht vorenthalten:
function Browser() {
var b=navigator.appName;
if (b.indexOf('Netscape')!=-1) this.b="ns";
else if ((b=="Opera") || (navigator.userAgent.indexOf("Opera")>0)) this.b = "opera";
else if (b=="Microsoft Internet Explorer") this.b="ie";
if (!b) alert('Unidentified browser.\nThis browser is not supported,');
this.version=navigator.appVersion;
this.v=parseInt(this.version);
this.ns=(this.b=="ns" && this.v>=4);
this.ns4=(this.b=="ns" && this.v==4);
this.ns6=(this.b=="ns" && this.v==5);
this.ie=(this.b=="ie" && this.v>=4);
this.ie4=(this.version.indexOf('MSIE 4')>0);
this.ie5=(this.version.indexOf('MSIE 5')>0);
this.ie55=(this.version.indexOf('MSIE 5.5')>0);
this.ie6=(this.version.indexOf('MSIE 6.0')>0);
this.opera=(this.b=="opera");
this.dom=(document.createElement && document.appendChild && document.getElementsByTagName)?true:false;
this.def=(this.ie||this.dom); // most used browsers, for faster if loops
var ua=navigator.userAgent.toLowerCase();
if (ua.indexOf("win")>-1) this.platform="win32";
else if (ua.indexOf("mac")>-1) this.platform="mac";
else this.platform="other";
}
is=new Browser();
alert(is.b);
Was mich zum schmunzeln brachte:
Opera selbst hat diese Art der identifizierung empfohlen, wenn man sich allerdings streng an die Empfehlung gehalten hätte, würde man bei Opera das Ergebnis 'ie' erhalten (schmunzel).
Gruss Stephan
Hallo Stephan,
habe viel Zeit damit verbracht herauszufinden wie man Opera identifizieren kann. Hier im Forum war nix brauchbares dazu.
Dann hast du dabei aber sicher gelesen, dass es idR sinnfrei ist, die Clients anhand des UserAgents zu unterscheiden. Schaue nicht auf das, was sie behaupten zu sein, sondern auf das, was sie können.
Grüße
David
Hi,
habe viel Zeit damit verbracht herauszufinden wie man Opera identifizieren kann. Hier im Forum war nix brauchbares dazu.
hier im Forum wurde die Eigenschaft, mit der Opera sehr, sehr deutlich sagt, dass er es ist, hinreichend oft genannt. Und dass man in annähernd 100% aller existierenden und denkbaren Fälle nicht im geringsten am Browser interessiert ist, sondern an seinen Fähigkeiten, die man direkt erfragen kann, wurde ebenfalls oft genug gesagt.
var b=navigator.appName;
Genauso wie der Unsinn dieser Vorgehensweise ...
if (!b) alert('Unidentified browser.\nThis browser is not supported,');
... und der Wahnsinn der diesen.
Cheatah
Hi Cheatah
...und dass man in annähernd 100% aller existierenden und denkbaren Fälle nicht im geringsten am Browser interessiert ist, sondern an seinen Fähigkeiten, die man direkt erfragen kann, wurde ebenfalls oft genug gesagt.
Vielleicht um einfach den Surfer eine Meldung auf den Bildschirm zu werfen, er möge sich bitte einen anständigen Browser zulegen...
(Nur um die Gemüter ein wenig zu erhitzen)
Ich bins leid, daß in Netscape, Mozilla und IE alles Pixelgenau hinhaut und Opera eine Extrawurst braucht. Außerdem die Probleme mit z-index bei iframes, css usw.
Grüsse
Stephan
P.S.: Opera User sollten vor einer Antwort tief durchatmen und bis zehn zählen.
Hallo Stephan,
Ich bins leid, daß in Netscape, Mozilla und IE alles Pixelgenau hinhaut und Opera eine Extrawurst braucht. Außerdem die Probleme mit z-index bei iframes, css usw.
wär ich bei Operas Extrawürsten auch, allerdings halten sich diese Probleme mit Opera 7 oder 7.5 immerhin in überschaubaren Grenzen. Pixelgenaue Darstellung solltest du handwerklich so gut und flexibel umsetzen dass übliche Abweichungen und Einstellungen wie auch das Fehlen bestimmter Schriften auf dem "Zielrechner" das Ergebnis nicht zu sehr leiden lassen. Und CSS-Eigenheiten kannst du sowieso schlecht per JavaScript ausgleichen, erst recht wenn wie bei deinem Code die Vorgehensweise schon zur Browsererkennung etwa von Opera völlig ungeeignet ist.
Grüsse
Cyx23
Hallo,
Vielleicht um einfach den Surfer eine Meldung auf den Bildschirm zu
werfen, er möge sich bitte einen anständigen Browser zulegen...
aaahh, dachte ich, das war ja nett, endlich kommt mein alter Freund mal wieder vorbei - lange nicht mehr gesehen, da köpf ich doch gleich einmal eine gute Flasche Wein, das wird bestimmt ein langer guter Abend, ...doch, was sehe ich vor lauter Schreck? Ja ist der denn wahnsinnig? Was hat der denn für Schuhe an? Ja was soll denn das? Die passen doch absolut nicht zu meinen Wänden, ne, sorry, da kann der wirklich nicht rein in meine Wohnung, sorry, da soll er sich erst mal anständige Schuhe kaufen gehen....
Chräcker
Grundlage für Zitat #343.
Hallo Stephan,
...und dass man in annähernd 100% aller existierenden und denkbaren Fälle nicht im geringsten am Browser interessiert ist, sondern an seinen Fähigkeiten, die man direkt erfragen kann, wurde ebenfalls oft genug gesagt.
Vielleicht um einfach den Surfer eine Meldung auf den Bildschirm zu werfen, er möge sich bitte einen anständigen Browser zulegen...
definiere "anständigen Browser" - doch wohl hoffentlich nicht IE, oder?
Ich bins leid, daß in Netscape, Mozilla und IE alles Pixelgenau hinhaut und Opera eine Extrawurst braucht. Außerdem die Probleme mit z-index bei iframes, css usw.
dann machst du wohl was falsch - bei mir braucht immer der IE eine Extrawurst ...
P.S.: Opera User sollten vor einer Antwort tief durchatmen und bis zehn zählen.
hab ich :-)
Grüße aus Nürnberg
Tobias
P.S. warum nicht einfach if(window.opera)?
Hi Stephan,
(Nur um die Gemüter ein wenig zu erhitzen)
Du nimmst dich ein bisschen zu wichtig. >;)
Ich bins leid, daß in Netscape, Mozilla und IE alles Pixelgenau hinhaut und Opera eine Extrawurst braucht.
Ich bin diffuse Beschwerden ohne Referenz auch leid. Lies </faq/#Q-07c>.
Außerdem die Probleme mit z-index bei iframes,
Plugins überlagern er ohne Probleme. Dein Browser auch?
css usw.
Siehe oben.
Grüße,
Roland
Hi,
Vielleicht um einfach den Surfer eine Meldung auf den Bildschirm zu werfen, er möge sich bitte einen anständigen Browser zulegen...
Du willst also Deine Unfähigkeit Deinen Besuchern vorwerfen?
(Nur um die Gemüter ein wenig zu erhitzen)
Ja, genau.
P.S.: Opera User sollten vor einer Antwort tief durchatmen und bis zehn zählen.
Wer Opera benutzt, der wird sich nicht mal die Mühe machen und mit den Schultern zucken, während er Deine Site wieder verlässt.
Cheatah
Hallo Stephan,
habe viel Zeit damit verbracht herauszufinden wie man Opera identifizieren kann.
if(window.opera)
Hier im Forum war nix brauchbares dazu.
glaube ich nicht.
Jetzt habe ich was gefunden und möchte es den anderen nicht vorenthalten:
... jede Menge javascript ...
und wozu brauchst du das? Diese Art der Browsererkennung stammt noch aus den Anfängen des Internets als 99,9% der Browser entweder Netscape (4.x) oder IE (4.x, 5.x) hießen.
Dort langte in aller Regel die Auswertung der Browserkennung oder ein if(document.layers) Wenn schon javascript, dann bitte auf die verwendeten Methoden prüfen. Das ist wesentlich effektiver und sicherer. Und die Browserkennung _niemals_ dazu missbrauchen um dem Surfer ein "optimiertes" Design zu liefern.
Grüße,
Jochen
Hi,
Hier im Forum war nix brauchbares dazu.
LOL! So oft, wie ich auf meine http://Coding.vampirehost.de/Systemvariable verwiesen habe (auch in Threads Browsererkennung betreffend), habe ich da echte Zweifel. ;-)
Jetzt habe ich was gefunden und möchte es den anderen nicht vorenthalten:
Na ja, den Browser mittels navigator.appName festzumachen, ist keine wirklich gute Wahl (eher ein Notnagel, wenn es nicht anders geht). Und die Ermittlung der jeweiligen Versionsnummer ist IMHO auch recht unflexibel.
Opera selbst hat diese Art der identifizierung empfohlen, wenn man sich allerdings streng an die Empfehlung gehalten hätte, würde man bei Opera das Ergebnis 'ie' erhalten (schmunzel).
Hmm, Opera weißt a) auf window.opera hin und b) auf den Umstand, daß selbst im (offiziell) gefakten Namen noch "Opera" enthalten ist.
Gruß, Cybaer