Überprüfen Sie, ob der Browser Chrome oder Edge ist

8

Meine aktuelle Website läuft nur im Chrome Browser, dazu habe ich folgendes eingecheckt

%Vor%

Aber auch für Edge wird nur "Chrome" zurückgegeben.

Wie kann ich den Zugriff nur vom Chrome-Browser aus zulassen?

    
Shaggy 07.08.2015, 06:07
quelle

4 Antworten

13

Sie können user-agent überprüfen und sehen, ob es Microsoft Edge ist oder nicht, weil Microsoft Edge Edge/version in seiner User-Agent-Zeichenfolge enthält.

%Vor%

Beispiel für Edge-User-Agent-Zeichenfolgen

Mozilla/5.0 (X11; CrOS x86_64 6783.1.0) AppleWebKit/537.36 (KHTML, like Gecko) Edge/12.0

Weitere hier und hier

Am Ende schlage ich vor, Feature-Erkennung im Browser zu verwenden, anstatt auf der Grundlage von User-Agent zu handeln.

    
dotctor 07.08.2015, 06:15
quelle
2

Ich bin neugierig - was ist der Anwendungsfall? Egal, hier gehts:

Microsoft Edge-UA-Zeichenfolge:

Mozilla / 5.0 (Windows NT 10.0) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 42.0.2311.135 Safari / 537.36 Edge / 12.10136

Ich erläutere warum in diesem Blogbeitrag.

Neowin berichtete kürzlich, dass Microsofts neuer Browser für Windows 10, Spartan, die Chrome UA-Zeichenkette, Mozilla / 5.0 (Windows NT 10.0; WOW64) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 39.0.2171.71 verwendet Safari / 537.36 Edge / 12.0 ". Das geschieht absichtlich.

Sie werden auch bemerken, dass die gesamte Zeichenfolge mit "Edge / 12.0" endet, was Chrome nicht tut.

Ich möchte darauf hinweisen, dass dies keine logische Abkehr von dem ist, was Microsoft mit IE 11 gemacht hat, das auf Windows 8 liest: Mozilla / 5.0 (Windows NT 6.3; Trident / 7.0; rv: 11.0) wie Gecko, as erklärt in diesem Beitrag.

Was ist User Agent Sniffing?

Oft werden Web-Entwickler UA nach Browser-Erkennung schnüffeln. Mozilla erklärt es gut auf ihrem Blog:

Das Bereitstellen verschiedener Webseiten oder Dienste für verschiedene Browser ist normalerweise eine schlechte Idee. Das Web soll für jeden zugänglich sein, unabhängig davon, welchen Browser oder welches Gerät es verwendet. Es gibt Möglichkeiten, Ihre Website so zu entwickeln, dass sie sich auf der Grundlage der Verfügbarkeit von Funktionen progressiv weiterentwickelt und nicht mehr auf bestimmte Browser abzielt.

Hier ist ein großartiger Artikel, der den Verlauf des Benutzeragenten erklärt.

Oft werden faule Entwickler nur nach der UA-Zeichenkette schnüffeln und Inhalte auf ihrer Website basierend darauf deaktivieren, welchen Browser sie glauben, dass der Betrachter sie verwendet. Internet Explorer 8 ist ein üblicher Punkt der Frustration für Entwickler. Daher werden sie häufig überprüfen, ob ein Benutzer EINE Version von IE verwendet, und Funktionen deaktivieren.

Das Edge-Team erklärt dies sogar tiefer auf ihrem Blog.

Alle User-Agent-Strings enthalten mehr Informationen über andere Browser als den tatsächlich verwendeten Browser - nicht nur Tokens, sondern auch "aussagekräftige" Versionsnummern.

Die UA-Zeichenfolge von Internet Explorer 11:

Mozilla / 5.0 (Windows NT 6.3; Trident / 7.0; rv: 11.0) wie Gecko

Microsoft Edge-UA-Zeichenfolge:

Mozilla / 5.0 (Windows NT 10.0) AppleWebKit / 537.36 (KHTML, wie Gecko) Chrome / 42.0.2311.135 Safari / 537.36 Edge / 12.10136

Die Eigenschaft userAgent wurde von Patrick H. Lauke in W3C-Diskussionen treffend als "ein ständig wachsendes Rudel von Lügen" beschrieben. ("Oder besser gesagt, ein Balanceakt, bei dem genügend alte Keywords hinzugefügt werden, die nicht sofort den alten UA-Sniffing-Code umfallen lassen, während immer noch versucht wird, ein bisschen wirklich nützliche und genaue Informationen zu vermitteln.")

Wir empfehlen Webentwicklern, UA-Sniffing so weit wie möglich zu vermeiden. Moderne Web-Plattform-Funktionen sind fast alle auf einfache Weise erkennbar. Im letzten Jahr haben wir einige UA-Sniffing-Sites gesehen, die aktualisiert wurden, um Microsoft Edge zu erkennen ... nur um es mit einem alten IE11-Code-Pfad zu versehen. Dies ist nicht der beste Ansatz, da Microsoft Edge das WebKit-Verhalten und nicht das IE11-Verhalten abgleicht (alle Edge-WebKit-Unterschiede sind Fehler, die wir beheben möchten).

Nach unserer Erfahrung läuft Microsoft Edge am besten auf den WebKit-Codepfaden in diesen Sites. Da das Internet auf einer größeren Anzahl von Geräten verfügbar ist, gehen Sie bitte davon aus, dass unbekannte Browser gut sind. Bitte beschränken Sie Ihre Website nicht auf die Arbeit mit nur wenigen bekannten Browsern. Wenn Sie dies tun, wird Ihre Website wahrscheinlich in der Zukunft brechen.

Fazit

Indem wir die Chrome UA-Zeichenfolge präsentieren, können wir die von diesen Entwicklern verwendeten Hacks umgehen, um Benutzern die beste Benutzererfahrung zu bieten.

    
Dave Voyles - MSFT 12.08.2015 22:28
quelle
1
%Vor%

Arbeitete für mich.

    
meJustAndrew 22.07.2016 11:17
quelle
0

Ich benutze die Browser-Erkennung, wenn JavaScript-Fehler protokolliert werden, da es nützlich ist zu wissen, in welchem ​​Browser der Fehler aufgetreten ist.

Ursprünglich von diese Frage I verwendet einen Eintrag im Ordner App_Browsers:

%Vor%

Aber das war inkonsistent und manchmal berichtet Chrome immer noch, so dass ich jetzt zusätzlich diese Wrapperklasse verwende:

%Vor%     
Alan Buchanan 17.03.2017 15:48
quelle