WinFuture-Forum.de: Browsererkennung mit Javascript - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Browsererkennung mit Javascript


#1 Mitglied ist offline   sK!LL 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 10. Oktober 06
  • Reputation: 0

geschrieben 30. Juli 2011 - 10:45

Hallo Community,

ich brauche eine Browsererkennung mit Javascript die heut zu tage zu funktioniert...

ich habe mind. 5 Varianten gefunden, die meisten stammen von < 2008.
Gibt es eine aktuelle Variante?
0

Anzeige



#2 Mitglied ist offline   sK!LL 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 10. Oktober 06
  • Reputation: 0

geschrieben 30. Juli 2011 - 13:35

*push*
0

#3 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 30. Juli 2011 - 13:42

Zuerst mal hier lesen: http://css-tricks.co...tection-is-bad/

Spoiler

hier noch nen haufen useragents http://www.joergkrus...browser/kennung

und falls du englisch kannst: hier die geschichte zu den User Agents (ist recht lustig :) ) http://webaim.org/bl...string-history/

Dieser Beitrag wurde von Ludacris bearbeitet: 30. Juli 2011 - 13:49

0

#4 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 30. Juli 2011 - 13:55

navigator.userAgent


Edit: Oh, bissel spät. :)
0

#5 Mitglied ist offline   sK!LL 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 10. Oktober 06
  • Reputation: 0

geschrieben 07. August 2011 - 11:59

Beitrag anzeigenZitat (Witi: 30. Juli 2011 - 13:55)

navigator.userAgent


Edit: Oh, bissel spät. :)



Also leute, ich habe schon alle gewöhnlichen Vorgehensweisen getestet.
navigator.userAgent funktioniert natürlich nicht. z.B in Chrome behauptet navigator.userAgent Mozilla usw...
Ich suche hier nach einer Vorgehensweise die aktuell funktioniert.
0

#6 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 07. August 2011 - 12:04

ich habe dir doch bereits gesagt dass man nicht mit browsererkennungen arbeiten sollte da genau soetwas passiert. lies dir die geschichte über die useragents durch, sie ist witzig und zeigt genau das problem auf denn chrome ist laut dem user agent nicht chrome sondern "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13" sprich er sagt er ist mozilla auf windows mit apple's webkit die KTHML (von linux entspricht) welche wiederum wie gecko ist und er sagt er ist chrome, der aber gleichzeitig auch safari ist ;)
0

#7 Mitglied ist offline   sK!LL 

  • Gruppe: Mitglieder
  • Beiträge: 5
  • Beigetreten: 10. Oktober 06
  • Reputation: 0

geschrieben 07. August 2011 - 12:20

Beitrag anzeigenZitat (Ludacris: 07. August 2011 - 12:04)

ich habe dir doch bereits gesagt dass man nicht mit browsererkennungen arbeiten sollte da genau soetwas passiert. lies dir die geschichte über die useragents durch, sie ist witzig und zeigt genau das problem auf denn chrome ist laut dem user agent nicht chrome sondern "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.2.149.27 Safari/525.13" sprich er sagt er ist mozilla auf windows mit apple's webkit die KTHML (von linux entspricht) welche wiederum wie gecko ist und er sagt er ist chrome, der aber gleichzeitig auch safari ist ;)



manchmal ist man aber darauf angewiesen du held.
Welche alternative gibt es denn -.-


function checkBrowserName(name)
{
var agent = navigator.userAgent.toLowerCase();
if (agent.indexOf(name.toLowerCase())>-1) {
return true;
}
return false;
}

if(checkBrowserName('MSIE'))
{
alert('MSIE');
}
else if(checkBrowserName('opera'))
{
alert('opera');
}
else if(checkBrowserName('chrome'))
{
alert('chrome');
}
else if(checkBrowserName('safari'))
{
alert('Dsafari');
}
else if(checkBrowserName('firefox'))
{
alert('firefox');
}

so habe ich erstmal keine Probleme, aber nur in der Reihenfolge, ansonsten wäre es auch fehlerhaft.

Dieser Beitrag wurde von sK!LL bearbeitet: 07. August 2011 - 12:20

0

#8 Mitglied ist offline   Ludacris 

  • Gruppe: Moderation
  • Beiträge: 4.668
  • Beigetreten: 28. Mai 06
  • Reputation: 218
  • Geschlecht:Männlich

geschrieben 07. August 2011 - 12:51

wesshalb bist du darauf angewiesen? vielleicht finden wir ein workaround
0

#9 Mitglied ist offline   Witi 

  • Gruppe: aktive Mitglieder
  • Beiträge: 5.942
  • Beigetreten: 13. Dezember 04
  • Reputation: 43
  • Geschlecht:Männlich
  • Wohnort:Kingsvillage
  • Interessen:Frickeln

geschrieben 08. August 2011 - 07:19

sK!LL sagte:

navigator.userAgent funktioniert natürlich nicht. z.B in Chrome behauptet navigator.userAgent Mozilla usw...
Hättest du dir die Zeichenkette genau angeschaut, würdest du erkennen, dass da noch mehr auftaucht. Richtig lesen ist angesagt! Bei mir sieht's aktuell so aus:
Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/13.0.782.107 Safari/535.1
FX gibt bspw folgendes aus:
Mozilla/5.0 (X11; Linux x86_64; rv:5.0) Gecko/20100101 Firefox/5.0
Es ist allerdings richtig, dass ich jederzeit die Möglichkeit habe den User-Agent zu ändern.
0

#10 Mitglied ist offline   zwutz 

  • Gruppe: aktive Mitglieder
  • Beiträge: 652
  • Beigetreten: 17. Juli 07
  • Reputation: 1
  • Geschlecht:Männlich

geschrieben 10. August 2011 - 16:20

mal davon abgesehen, dass man Browserweichen nach Möglichkeit vermeiden sollte, ist der Useragent die wohl eher schlechtere Wahl, sowas zu erledigen. Der kann vom Client beliebig geändert werden

Besser du prüfst ob die JS-Methode, die du verwenden willst, auch existiert
Raise your glass if you are wrong
0

#11 Mitglied ist offline   N1truX 

  • Gruppe: aktive Mitglieder
  • Beiträge: 2.823
  • Beigetreten: 06. Juli 06
  • Reputation: 2
  • Geschlecht:Männlich
  • Wohnort:Berlin
  • Interessen:Bei WF vorbeischauen, Webprogrammierung, mit Freunden treffen oder irgendwas anderes...

geschrieben 15. August 2011 - 14:38

Ich überprüfe so z.B. ob der Browser HTML5 unterstützt. Etwas abgewandelt kann man damit sicherlich auch eine einfache Browser-Erkennung durchführen..
html5 = {
check: function() {
	var nav = navigator.userAgent, index = value = false;
	var detect = new Array('Chrome/', 'Firefox/', 'MSIE', 'Opera/', 'Safari/');
	var Vstr = new Array('Chrome/', 'Firefox/', 'Trident/', 'Version/', 'Version/');
	var HTML5ver = new Array(12, 4, 5, 11.1, 5);

		for (var i = 0; i < detect.length; i++) {
			if(nav.indexOf(detect[i])!=-1) {
				index = nav.indexOf(Vstr[i])+String(Vstr[i]).length;
				value = nav.substr(index,String(HTML5ver[i]).length);
				if(value>=HTML5ver[i]) {/*Tue dies*/};
				else {/*Tue jenes*/};
				return;
			}
		}
},
...
}

Die Frage bleibt aber, ob es bei dir wirklich Sinn macht. Viele Dinge kann man auch anders/schöner lösen.

Dieser Beitrag wurde von N1truX bearbeitet: 15. August 2011 - 14:39

PC: AMD FX-8150 | Sapphire Radeon HD 5770 @OC-Bios | GA-990XA-UD3 - 4x4 GB DDR3-2133 | OCZ Agility II 128 GiB SSD (OS) & 10 TB-Storage-Server | Win7 Professional x64
NB: Sony Vaio VPCYB16 - AMD Fusion E-350 - 1x4 GiB Kingston DDR3-1333 - 64 GiB Super*Talent SSD
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0