2015-07-20 14 views
18

Czy agent użytkownika dla przeglądarek Edge lub Spartan jest już znany? Czy ktoś może mi powiedzieć, jak wykryć tę przeglądarkę i odróżnić ją od IE przed wydaniem?Wykrywanie krawędzi lub spartan firmy Microsoft za pomocą javascript

+0

_ [Wykrywanie Browser jest zły] (https://css-tricks.com/browser-detection-is-bad/) ._ – Cerbrus

+16

Kogo to obchodzi? To wciąż pytanie, na które chcę odpowiedzieć :) Badanie ... – kieranpotts

+0

@Cerbrus, wiem o tym, ale w tym przypadku nie mogę tego uniknąć. Ponadto, istnieją tysiące pytań dotyczących wykrywania, tj. 9. 10 lub 11, i nie wiem, dlaczego ten nie jest uzasadniony. – Vandervals

Odpowiedz

16

Proste wyszukiwanie google znaleźć mi odpowiedź, której szukasz: 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 

Dlatego należy dopasować: "Edge\/\d+"

+0

, więc powinienem dopasować ' "Edge/12.0" '? – Vandervals

+2

Powinieneś dopasować "Edge /", a następnie wartość liczbową. Numer wersji zmieni się z czasem. – kieranpotts

+0

Wystarczy, że dowiesz się trochę o tym ... dlaczego ten klient używa również CHrome i Safari? Czy to nie może generować błędów w przyszłości, próbując wykryć te dwie przeglądarki? – Vandervals

3

Microsoft Edge UA ciąg:

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

I detail why in this blog post.

Neowin niedawno, że nowa przeglądarka Microsoftu dla Windows 10, Spartan, wykorzystuje ciąg Chrome UA „Mozilla/5.0 (Windows NT 10,0; WOW64) AppleWebKit/537.36 (KHTML, jak Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0 ".Dokonano tego celowo.

Zauważysz również, że cały ciąg kończy się na "Edge/12.0", którego Chrome nie ma.

Należy zauważyć, że nie jest to redical odejście od tego, co Microsoft zrobił z IE 11, który na Windows 8 brzmi: Mozilla/5.0 (Windows NT 6.3, Trident/7.0, rv: 11.0) jak Gecko, jak wyjaśniono w tym poście.

Co to jest podsłuchiwanie agenta użytkownika?

Twórcy stron internetowych często będą wyłapywani przez UA w celu wykrycia przeglądarki. Mozilla tłumaczy to dobrze na swoim blogu:

Serwowanie różnych stron internetowych lub usług dla różnych przeglądarek jest zazwyczaj złym pomysłem. Sieć ma być dostępna dla wszystkich, bez względu na to, z której przeglądarki lub urządzenia korzystają. Istnieją sposoby na rozwój witryny internetowej, aby stopniowo ulepszać się w oparciu o dostępność funkcji, a nie poprzez kierowanie na określone przeglądarki.

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

Często leniwi programiści będą tylko powąchać dla struny UA i wyłączyć treści na swojej stronie internetowej na podstawie której przeglądarka wierzą widz korzysta. Internet Explorer 8 jest powszechną frustracją dla programistów, więc często sprawdzają, czy użytkownik używa dowolnej wersji IE i wyłącza funkcje.

The Edge team details this even deeper on their blog.

wszystkie czynniki ciągi użytkowników zawierają więcej informacji na temat innych przeglądarek niż rzeczywisty przeglądarki używasz - nie tylko żetony, ale także „” znaczące numery wersji.

Internet Explorer 11 w UA ciąg:

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

Microsoft Edge UA ciąg:

Mozilla/5.0 (Windows NT 10,0) AppleWebKit/537,36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537,36 EDGE/12,10136

Właściwość userAgent została trafnie opisana jako "stale rosnąca paczka kłamstw" autorstwa Patricka H. Lauke'a w dyskusjach W3C. ("A raczej równoważenie dodania wystarczającej liczby słów kluczowych, które nie będą miały natychmiastowego przewrotu nad starym kodowaniem wyszukującym UA, wciąż próbując przekazać trochę rzeczywiście użytecznych i dokładnych informacji.")

Polecamy że twórcy stron internetowych unikają podsłuchiwania UA w jak największym stopniu; nowoczesne funkcje platformy internetowej są prawie wszystkie wykrywalne w łatwy sposób. W zeszłym roku widzieliśmy niektóre witryny podsłuchujące UA, które zostały zaktualizowane w celu wykrycia Microsoft Edge ... tylko po to, aby zapewnić mu starszą ścieżkę kodu IE11. To nie jest najlepsze podejście, ponieważ Microsoft Edge dopasowuje zachowania "WebKit", a nie zachowania IE11 (różnice Edge-WebKit to błędy, które chcemy naprawić).

Z naszego doświadczenia Microsoft Edge najlepiej radzi sobie na ścieżkach kodu "WebKit" w tych witrynach. Ponadto, gdy Internet staje się dostępny na większej liczbie urządzeń, proszę zakładać, że nieznane przeglądarki są dobre - proszę nie ograniczać swojej witryny do pracy tylko w niewielkim zestawie znanych znanych przeglądarek. Jeśli to zrobisz, Twoja strona prawie na pewno się zepsuje w przyszłości.

Wnioski

Przedstawiając ciąg Chrome UA, możemy obejść te hacki programiści używają, aby przedstawić najlepsze doświadczenie dla użytkowników.

1

Wyszukaj "Edge" w ciągu znaków UA.

Podczas gdy w świadomości marketingowców świat jest idealny, w rzeczywistości przeglądarki mają błędy, które pozostają nieutrwalone od lat i zawsze tak będzie.

W moim przypadku problemem, który wymagał sprawdzenia w grze Edge w porównaniu z Chrome, jest błąd wysokości w przeglądarce Chrome, który wyświetla się poprawnie w Spartan/Edge. Microsoft nie ma nic do naprawienia, a Google od ponad roku ignoruje ten błąd (poprawnie wyświetlał się w starych wersjach Chrome).

0

Inną cechą wykrywania.

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