Как определить версию Internet Explorer в javascript

Введение

Как определить версию Internet Explorer в  javascriptЯ уже как-то писал статью про определение браузера средствами JavaScript, но сегодня я столкнулся с другой проблемой — как определить конкретную версию Internet Explorer. Как всем известно этот браузер постоянно преподносит нам сюрпризы, и каждая его версия практически живет свое жизнью. Бывают такие ситуации, что код адекватно работает в 9-й версии, но не работает в 8-й, и наоборот. И такие моменты встречаются при работе с каждой версией. Поэтому рано или поздно вам придется столкнуться с проблемой определения конкретной версии IE.

Как оказалось определить версию IE не составляет особого труда. При определении версии можно воспользоваться интересной особенностью Internet Explorer — у каждой версии этого «браузера» имеются уникальные глобальные объекты. Например, в IE9 существует глобальный объект document.addEventListener, и такой объект используется только в версиях старше IE9(включительно). Или же объект document.querySelector — он появился только в версии IE8 и используется в более новых версиях. Такие объекты есть в каждой версии, опираясь на них(проверяя их существование) можно легко составлять условия для конкретных версий Internet Explorer.
Какие объекты присутствуют в различных версиях я приведу в ниже:
IE10+ — window.atob
IE9+ — document.addEventListener
IE8+ — document.querySelector
IE7+ — window.XMLHttpRequest
IE6+ — document.compatMode
Еще один глобальный объект document.all существует во всех версиях IE, но не используется ни в каких других браузерах, основываясь на нем можно отличить IE от других браузеров.

Как определить версию Internet Explorer в javascript. Код

Теперь у нас есть все необходимые составляющие: объект, который есть во всех версиях IE и только в нем — это позволит отличать его от других браузеров. А также у нас есть объекты, которые помогут отличать конкретные версии IE. Ниже приведу несколько примеров, которые наглядно покажут, как на практике можно использовать глобальные объекты IE.

if(document.all){
    // код для всех версий IE. В других браузерах выполняться не будет
}

if(document.all && !window.atob){
    // код для IE9 и ниже
}

if(document.all && !document.addEventListener){
    // код для IE8 и ниже
}

if(document.all && !document.querySelector){
    // код для IE7 и ниже
}

if(document.all && !window.XMLHttpRequest){
    // код для IE6 и ниже
}

if(document.all && window.atob){
    // код для IE10 и выше
}

if(document.all && document.addEventListener){
    // код для IE9 и выше
}

if(document.all && document.querySelector){
    // код для IE8 и выше
}

if(document.all && window.XMLHttpRequest){
    // код для IE7 и выше
}

if(document.all && document.querySelector && !document.addEventListener){
    // код только для IE8
}
Рассказать друзьям:


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

*