Как я могу настроить таргетинг только на Internet Explorer 11 С помощью JavaScript?
каков наименее подверженный ошибкам способ нацелиться только на IE11 с JavaScript?
Примечание: это действительно должно быть сделано только для аналитики или информирования пользователя, какой браузер они используют. Для всего остального, есть функция обнаружения.
7 ответов:
строка 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);Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; Trident/6.0)вероятно, также безопасно делать ставку на то, что теперь
Trident/Xпредполагается, что это реальная версия.
IE11 держит "трезубец" в его строке 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){}вас также может заинтересовать мой связанный, более подробный ответ здесь.
вот скрипт, который вы можете использовать для обнаружения любого браузера:
<script> // Opera var isOpera = (!!window.opr && !!opr.addons) || !!window.opera || navigator.userAgent.indexOf(' OPR/') >= 0; // Firefox 1.0+ var isFirefox = typeof InstallTrigger !== 'undefined'; // Safari 3.0+ "[object HTMLElementConstructor]" var isSafari = /constructor/i.test(window.HTMLElement) || (function (p) { return p.toString() === "[object SafariRemoteNotification]"; })(!window['safari'] || safari.pushNotification); // Internet Explorer 6-11 var isIE = /*@cc_on!@*/false || !!document.documentMode; // Edge 20+ var isEdge = !isIE && !!window.StyleMedia; // Chrome 1+ var isChrome = !!window.chrome && !!window.chrome.webstore; // Blink engine detection var isBlink = (isChrome || isOpera) && !!window.CSS; if (isFirefox==true) { alert(isFirefox) $('.container-fluid').css({"overflow-y":"auto","height":"150%"}); } </script>
Comments