Обнаружить старые версии IE
Мне нужно определить, работает ли пользователь в старой версии IE (IE9 в порядке) из плагина jQuery, поэтому я не буду контролировать HTML.
Нам не рекомендуется разбирать строку user-agent и использовать $.browser.msie
. Метод $.support
также не охватывает проблему.
Итак, я понял, что это работает, но я не уверен, что это "хорошая практика".
$('body').append('<!--[if lte IE 8]><script>$("body").addClass("oldie");</script><![endif]-->');
var old_ie = $('body').is('.oldie');
Не могли бы вы использовать этот метод или придерживаться разбора строки пользовательского агента (мне нужно выяснить, является ли он IE и получить номер версии)?
Ответы
Ответ 1
Вы можете запустить этот
var ie = (function () {
var undef, v = 3, div = document.createElement('div');
while (
div.innerHTML = '<!--[if gt IE '+(++v)+']><i></i><![endif]-->',
div.getElementsByTagName('i')[0]
);
return v > 4 ? v : undef;
}());
для обнаружения версии IE.
Источник: http://ajaxian.com/archives/attack-of-the-ie-conditional-comment
И затем
if ( ie < 9 ) {
// do your stuff, for instance:
window.location = 'http://getfirefox.com'; // :p
}
Ответ 2
В вашем вопросе явно не упоминалось, почему у вас возникла определенная потребность в обнаружении для IE9, поэтому, как правило, придерживается следующих рекомендаций:
Вместо того, чтобы обнаруживать конкретный браузер/версию, вы должны вместо этого обнаруживать определенные функции. Modernizr - это хорошее место, чтобы начать с этой помощью.
Ответ 3
Как насчет этого:
if (!($.browser.msie && $.browser.version < 9.0)) {
// Apply only to IE8 and lower
}
Обратите внимание, что IE8 отображается как IE7
Ответ 4
https://msdn.microsoft.com/en-us/library/ms537509%28v=vs.85%29.aspx
См. Ссылку выше, это может быть официальный ответ:)
Вкратце, введите код на странице html.
<!--[if gte IE 9]>
<p>You're using a recent version of Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]-->
<!--[if lt IE 9]>
<p>Hm. You should upgrade your copy of Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]-->
<![if !IE]>
<p>You're not using Internet Explorer.</p>
<script type="text/javascript">//do something</script>
<![endif]>