2015-07-20 3 views
18

Ist der User Agent für Edge oder Spartan Browser bereits bekannt? Kann mir jemand sagen, wie ich diesen Browser erkennen und ihn vor seiner Veröffentlichung von IE unterscheiden kann?Erkennen von Microsoft Edge oder Spartan mit Javascript

+0

_ [Browser Detection ist Bad] (https://css-tricks.com/browser-detection-is-bad/) ._ – Cerbrus

+16

Wen kümmert es? Es ist immer noch eine Frage, ich möchte die Antwort wissen :) Forschen ... – kieranpotts

+0

@Cerbrus, ich weiß davon, aber in diesem Fall kann ich nicht vermeiden, dies zu tun. Außerdem gibt es Tausende von Fragen bezüglich der Erkennung von zB 9. 10 oder 11, und ich weiß nicht, warum dieser nicht legitim ist. – Vandervals

Antwort

16

Eine einfache Google-Suche gefunden mir die Antwort, die Sie suchen: http://forum.piwik.org/read.php?3,125732

Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 

Deshalb sollten Sie entsprechen: "Edge\/\d+"

+0

also, sollte ich passen ' "Kante/12.0" "? – Vandervals

+2

Sie sollten "Edge /" gefolgt von einem numerischen Wert übereinstimmen. Die Versionsnummer wird sich im Laufe der Zeit ändern. – kieranpotts

+0

Nur um ein wenig über diese Dinge zu lernen ... warum benutzt dieser User Agent auch CHrome und Safari? Könnte das in Zukunft keine Fehler beim Versuch, diese beiden Browser zu erkennen, erzeugen? – Vandervals

3

Microsoft Edge-UA string:

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

I detail why in this blog post.

Neowin berichtete kürzlich, dass neue Browser von Microsoft für Windows 10, Spartan, die Chrom UA Zeichenfolge verwendet, „Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 ".Das ist absichtlich getan.

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

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

Was ist User Agent Sniffing?

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

Serving verschiedene Webseiten oder Dienste zu verschiedenen Browsern ist in der Regel 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.

Here’s a great article explaining the history of the User Agent.

Oft faul Entwickler schnüffeln nur für den UA-String und deaktivieren Inhalte auf ihrer Website, basierend auf welchem ​​Browser sie glauben, dass der Viewer wird. 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.

The Edge team details this even deeper on their blog.

Alle User Agents Zeichenfolgen enthalten Weitere Informationen zu anderen Browsern als dem eigentlichen Browser Sie verwenden - nicht nur Token, sondern auch ‚sinnvolle‘ Versionsnummern.

Internet Explorer 11 UA string:

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

Microsoft Edge-UA string:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537,36 (KHTML, wie Gecko) Chrom/42.0.2311.135 Safari/537,36 Rand/12,10136

Die Eigenschaft userAgent wurde von Patrick H. Lauke in W3C-Diskussionen treffend als "ein ständig wachsendes Paket 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 und dennoch ein wenig nützliche und genaue Informationen vermitteln.")

Wir empfehlen dass Webentwickler UA Sniffing so weit wie möglich 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 Vielzahl von Geräten verfügbar ist, gehen Sie bitte davon aus, dass unbekannte Browser gut sind. 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

den Chrome-UA-String Mit der Vorlage, können wir diese Entwickler verwenden, um die Hacks arbeiten, um die beste Erfahrung für die Nutzer zu präsentieren.

1

Suchen Sie in der UA-Zeichenfolge nach "Edge".

Während in den Köpfen der Marketing-Leute die Welt perfekt ist, haben Browser in Wirklichkeit Bugs, die jahrelang unfixiert bleiben und es wird immer der Fall sein.

In meinem Fall war das Problem, dass ich für Edge versus Chrome testen musste, der Chrome Dropdown-Höhenfehler, den Spartan/Edge korrekt rendert. Microsoft hat hier nichts zu beheben, und Google ignoriert diesen Fehler seit über einem Jahr (in älteren Versionen von Chrome wurde es korrekt gerendert).

0

Einer weiteren Feature-Erkennung basierte Option.

function isBrowserEdge() { 
    return typeof CSS !== 'undefined' && CSS.supports("(-ms-ime-align:auto)"); 
} 
Verwandte Themen