Подтвердить что ты не робот

Обнаружение Microsoft edge или spartan с помощью javascript

Известен ли пользовательский агент для браузеров Edge или Spartan? Может ли кто-нибудь сказать мне, как обнаружить этот браузер и отличить его от IE до его выпуска?

4b9b3361

Ответ 1

Простой поиск по Google нашел мне ответ, который вы ищете: 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

Поэтому вы должны соответствовать: "Edge\/\d+"

Ответ 2

В соответствии с этим ответом:

// Internet Explorer 6-11
var isIE = /*@[email protected]*/false || !!document.documentMode;
// Edge 20+
var isEdge = !isIE && !!window.StyleMedia;

Ответ 3

Строка Microsoft Edge UA:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

Я подробно объясню, почему в этом сообщении в блоге.

Недавно Neowin сообщила, что новый браузер Microsoft для Windows 10, Spartan, использует строку UAU "Mozilla/5.0 (Windows NT 10.0, WOW64) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/39.0.2171.71 Safari/537.36 Edge/12.0". Это сделано специально.

Вы также заметите, что вся строка заканчивается на "Edge/12.0", которой не располагает Chrome.

Я должен указать, что это не повторный отход от того, что сделал Microsoft с IE 11, который в Windows 8 читает: Mozilla/5.0 (Windows NT 6.3, Trident/7.0; rv: 11.0), как Gecko, как объясняется в этот пост.

Что нюхает агент пользователя?

Часто веб-разработчики часто читают UA для обнаружения браузера. Mozilla хорошо объясняет это в своем блоге:

Обслуживание различных веб-страниц или сервисов для разных браузеров - это, как правило, плохая идея. Веб предназначен для всех, независимо от того, какой браузер или устройство использует их. Существуют способы разработки вашего веб-сайта для постепенного повышения его качества на основе доступности функций, а не путем ориентации на определенные браузеры.

Вот отличная статья, объясняющая историю User Agent.

Часто ленивые разработчики просто нюхают за строку UA и отключают контент на своем веб-сайте, основываясь на том, какой браузер они считают, что использует зритель. Internet Explorer 8 - это общая точка разочарования для разработчиков, поэтому они часто проверяют, использует ли пользователь ЛЮБОЙ вариант IE и отключает функции.

Команда Edge подробно описывает это еще глубже в своем блоге.

Все строки пользовательских агентов содержат больше информации о других браузерах, чем фактический браузер, который вы используете, а не только токены, но также и значимые номера версий.

Строка UA Internet Explorer 11:

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

Строка Microsoft Edge UA:

Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, например, Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136

Свойство UserAgent было точно описано как "постоянно растущая пачка лжи" Патрика Х. Лауке в обсуждениях W3C. ( "вернее, балансирующий акт добавления достаточного количества устаревших ключевых слов, которые не будут сразу иметь старый код UA-sniffing, который все же пытается передать немного полезную и точную информацию".)

Мы рекомендуем, чтобы веб-разработчики избегали UA, как можно больше; современные функции веб-платформы почти все можно обнаружить легко. За прошедший год мы увидели некоторые сайты U-sniffing, которые были обновлены, чтобы обнаружить Microsoft Edge... только для того, чтобы предоставить ему устаревший код кода IE11. Это не лучший подход, поскольку Microsoft Edge соответствует "поведениям WebKit", а не поведениям IE11 (любые различия Edge-WebKit - это ошибки, которые были заинтересованы в исправлении).

По нашему опыту Microsoft Edge работает лучше всего на "кодах кода WebKit" на этих сайтах. Кроме того, с доступом в Интернет на более широком спектре устройств, пожалуйста, предположите, что неизвестные браузеры хороши - пожалуйста, не ограничивайте свой сайт работой только на небольшом наборе существующих известных браузеров. Если вы это сделаете, ваш сайт почти наверняка сломается в будущем.

Заключение

Представляя строку Chrome UA, мы можем работать с хаками, которые используют эти разработчики, чтобы представить лучший опыт для пользователей.

Ответ 4

Найдите строку "Edge" в строке UA.

В сознании людей маркетинга мир идеален, в действительности у браузеров есть ошибки, которые остаются незафиксированными в течение многих лет, и это всегда будет иметь место.

В моем случае проблема, требующая от меня проверки Edge против Chrome, - это ошибка роста раскрывающегося списка Chrome, которую Spartan/Edge правильно отображает. Microsoft не имеет ничего исправить здесь, и Google игнорирует эту ошибку уже более года (она корректно отображалась в старых версиях Chrome).

Ответ 5

Другая функция обнаружения на основе функции.

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