Какой самый способ, подверженный ошибкам, нацелен только на IE11 с JavaScript?
Примечание. Это должно быть сделано только для аналитики или информирования пользователя о том, какой браузер они используют. Для всего остального функция обнаруживает.
Какой самый способ, подверженный ошибкам, нацелен только на IE11 с JavaScript?
Примечание. Это должно быть сделано только для аналитики или информирования пользователя о том, какой браузер они используют. Для всего остального функция обнаруживает.
Строка 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
должно быть реальным версией.
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/));
var isIE11 = !!navigator.userAgent.match(/Trident\/7.0; rv 11/);
Источник: http://www.nczonline.net/blog/2013/07/02/internet-explorer-11-dont-call-me-ie/
Попробуйте это,
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
Я использую следующий шаблон для таргетинга на все браузеры IE. Вы можете сократить его, если вам нужен только IE 11.
/msie|trident|edge/g.test(navigator.userAgent.toLowerCase());
Удачи!
Фредрик
Это установит ie
в версию IE, или 0, если нет. Он будет работать с 1 по 11, но не сможет определить будущие версии, если Microsoft отбросит двигатель Trident.
var ie = 0;
try { ie = navigator.userAgent.match( /(MSIE |Trident.*rv[ :])([0-9]+)/ )[ 2 ]; }
catch(e){}
Вы также можете быть заинтересованы в моем родном, более подробном ответе здесь.