Я знаю, что IE11 изменил способ отправки navigator.userAgent
, и я видел this response. Это хорошо работает, если все, что нам нужно, это IE11 и выше, но нам нужен IE9 и выше. Я где-то читал, что кодовое имя Trident было введено в IE9, но быстрый тест IE8 показывает, что пользовательский агент там также содержит Trident.Как я могу настроить IE9 и выше с помощью javascript?
Мое регулярное выражение не очень хорошее; как я могу разделить эти строки, чтобы определить, что находится между Trident/
и следующей точкой с запятой, чтобы я мог определить, с какой версией я имею дело? (Пожалуйста, не говорите мне, чтобы использовать функцию обнаружения вместо, что это не вариант здесь.)
IE 8:
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; BO1IE8_v1;ENUS)"
IE 9:
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; .NET4.0E; InfoPath.3)"
Мой существующий код (который Безразлично «т поймать IE8) выглядит следующим образом:
if (navigator.userAgent.match(/Trident/)) {
// it's supported; do stuff
}
в принципе, я пытаюсь получить 5.0 из IE9 и 4.0 из IE8.
В этом случае вам нужно будет получить подстроку строки пользовательского агента. Почему бы просто не использовать условные HTML-теги? – Sethen
Кроме того, имейте в виду, что строки пользовательского агента для поиска определенных версий браузеров не так надежно. Строки пользовательского агента можно легко подделать. – Sethen
Это интегрировано в CMS, что исключает возможность добавления таких вещей. – EmmyS