2015-06-10 2 views
-3

Я проверяю скрипт на IE11, но следующее, похоже, не работает, оно возвращает меня false.Проверка IE11 в javascript-коде

function isIE() { 
      var myNav = navigator.userAgent.toLowerCase(); 
    alert(myNav); 
      return (myNav.indexOf('msie') != -1) ? parseInt(myNav.split('msie')[1]) : false; 
     } 
alert(isIE()); 

это делает, кажется, находит msie

кто может обновить эту функцию, чтобы обнаружить IE11

+2

Почему браузер нюхают? – undefined

+0

Дублирующий вопрос: http://stackoverflow.com/questions/21204017/html-css-detect-ie11-without-javascript Также см. [Совет Microsoft] (https://msdn.microsoft.com/library/hh801214 (v = vs.85) .aspx) для обработки IE10 +. –

ответ

1

Проверка для конкретного браузера не рекомендуется больше - функция обнаружения, как правило, более полезным. Если вам действительно нужно обнаружить IE11, следующая страница имеет пример сценария в разделе, посвященном обнаруживая IE хх:

http://www.javascriptkit.com/javatutors/navigator.shtml

В случае эта связь исчезнет в будущем, скрипт следующим образом:

//userAgent in IE7 WinXP returns: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727) 
//userAgent in IE11 Win7 returns: Mozilla/5.0 (Windows NT 6.3; Trident/7.0; rv:11.0) like Gecko 

if (navigator.userAgent.indexOf('MSIE') != -1) 
var detectIEregexp = /MSIE (\d+\.\d+);/ //test for MSIE x.x 
else // if no "MSIE" string in userAgent 
var detectIEregexp = /Trident.*rv[ :]*(\d+\.\d+)/ //test for rv:x.x or rv x.x where Trident string exists 

if (detectIEregexp.test(navigator.userAgent)){ //if some form of IE 
var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number 
if (ieversion>=12) 
    document.write("You're using IE12 or above") 
else if (ieversion>=11) 
    document.write("You're using IE11 or above") 
else if (ieversion>=10) 
    document.write("You're using IE10 or above") 
else if (ieversion>=9) 
    document.write("You're using IE9 or above") 
else if (ieversion>=8) 
    document.write("You're using IE8 or above") 
else if (ieversion>=7) 
    document.write("You're using IE7.x") 
else if (ieversion>=6) 
    document.write("You're using IE6.x") 
else if (ieversion>=5) 
    document.write("You're using IE5.x") 
} 
else{ 
document.write("n/a") 
} 

Так, чтобы заменить функцию, вы можете использовать что-то вроде:

function isIE() { 

    if (navigator.userAgent.indexOf('MSIE') != -1) 
     return true; 

    var detectIEregexp = /Trident.*rv[ :]*(\d+\.\d+)/ 
    return detectIEregexp.test(navigator.userAgent); 
} 
+0

Могу ли я редактировать код, я использую на много мест – user2784480

+0

Отредактировал ответ, включив в него простую функцию isIE(). – Alan

0
var myNav = navigator.userAgent; 

Для IE10 и ниже

myNav.indexOf('MSIE ') != -1 

Для IE11

myNav.indexOf('Trident/') != -1 

Для IE12

myNav.indexOf('Edge/') != -1 

Обновленное функция будет как этот

function isIE() { 
    var myNav = navigator.userAgent; 
    return (myNav.indexOf('MSIE ') != -1 || myNav.indexOf('Trident/') != -1 || myNav.indexOf('Edge/') != -1); 
} 
Смежные вопросы