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
Odpowiedz
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+"
, więc powinienem dopasować ' "Edge/12.0" '? – Vandervals
Powinieneś dopasować "Edge /", a następnie wartość liczbową. Numer wersji zmieni się z czasem. – kieranpotts
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
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.
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).
Według this answer: opcja oparta
// Internet Explorer 6-11
var isIE = /*@[email protected]*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;
Inną cechą wykrywania.
function isBrowserEdge() {
return typeof CSS !== 'undefined' && CSS.supports("(-ms-ime-align:auto)");
}
_ [Wykrywanie Browser jest zły] (https://css-tricks.com/browser-detection-is-bad/) ._ – Cerbrus
Kogo to obchodzi? To wciąż pytanie, na które chcę odpowiedzieć :) Badanie ... – kieranpotts
@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