Как настроить таргетинг только на Internet Explorer 11 с помощью JavaScript?

Какой самый способ, подверженный ошибкам, нацелен только на IE11 с JavaScript?

Примечание. Это должно быть сделано только для аналитики или информирования пользователя о том, какой браузер они используют. Для всего остального функция обнаруживает.

Ответ 1

Строка User-agent для IE 11 в настоящее время эта:

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

Пример Windows 10:

Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko

Это означает, что вы можете просто протестировать, для версий 11.xx,

var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent);

Как Пользовательский агент IE10 был

Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)

вероятно, также можно с уверенностью утверждать, что теперь Trident/X должно быть реальным версией.

Ответ 2

IE11 сохраняет "Trident" в нем строку UA, но падает MSIE. Простым способом обнаружения браузера является IE11 или выше (IE12, IE13 и т.д.):

var isAtLeastIE11 = !!(navigator.userAgent.match(/Trident/) && !navigator.userAgent.match(/MSIE/));

Если вам нужен только IE11 (и вы не хотите, чтобы будущие версии IE совпадали), сделайте следующее:

var isIE11 = !!(navigator.userAgent.match(/Trident/) && navigator.userAgent.match(/rv[ :]11/));

Ответ 4

Попробуйте это,

navigator.sayswho= (function(){
   var N= navigator.appName, ua= navigator.userAgent, tem;
   var M= ua.match(/(opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
   if(M && (tem= ua.match(/version\/([\.\d]+)/i))!= null) M[2]= tem[1];
   M= M? [M[1], M[2]]: [N, navigator.appVersion,'-?'];
   return M;
})();

Источник из Обнаружение браузера в JavaScript?

Обновлено для IE = 11

Используйте этот

var isIE11 = navigator.userAgent.match(/Trident\/7.0; rv 11.0/);

Прочтите это http://msdn.microsoft.com/en-us/library/ie/bg182625%28v=vs.85%29.aspx

Ответ 5

Я использую следующий шаблон для таргетинга на все браузеры IE. Вы можете сократить его, если вам нужен только IE 11.

 /msie|trident|edge/g.test(navigator.userAgent.toLowerCase());

Удачи!

Фредрик

Ответ 6

Это установит ie в версию IE, или 0, если нет. Он будет работать с 1 по 11, но не сможет определить будущие версии, если Microsoft отбросит двигатель Trident.

var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}

Вы также можете быть заинтересованы в моем родном, более подробном ответе здесь.