Определение IE в JavaScript

Добрый день, уважаемые читатели!ie-12-01-16

Читал я на новогодних праздниках книгу: «JavaScript. Шаблоны» Стефан Стоянов (рекомендую) и наткнулся на одну интересную конструкцию для определения, что текущий браузер пользователя именно Internet Explorer.

Внимание! Конструкцию ниже лучше не использовать, она приводится лишь для общего кругозора 🙂

 

Определение IE

Привожу цитату из книги:

Существует интересный способ определения типа браузера – по наличию поддержки условных комментариев. Он намного безопаснее, чем анализ значения свойства navigator.userAgent, потому что это значение легко может быть изменено пользователем.

Конструкция:

var isIE = /*@cc_on!@*/false;

установит переменную isIE в значение false во всех браузерах (потому что они игнорируют комментарии), но только не в IE из-за оператора отрицания ! в условном комментарии. Вот как эту инструкцию «видит» IE:

var isIE = !false; // true

Конец цитаты.

 

Я решил немного погуглить, нашел несколько статей. В одной из них так же было несколько интересных примеров, из простого:

/*@cc_on
	alert("Hello IE user (please, please switch)!");
@*/

Данная конструкция отработает только в IE. Как я понял, до IE10 версии включительно. В Edge уже такой трюк не проходит.

 

Предостережение

Во-первых, не стоит использовать техники определения браузера. Это плохая практика. Если только у вас совсем нет другого выхода, то тогда можно прибегнуть к данным методам.

Во-вторых, будьте внимательны, так как конструкция выше — это комментарий. А комментарии удаляются при сжатии javaScript файлов разными компрессорами (например, jscompress).

 

На этом все. Спасибо за внимание.

Если вы когда-либо использовали данную конструкцию — пишите в комментариях 🙂 Поделитесь опытом 🙂

 

Автор статьи: Alex. Категория: JavaScript
Дата публикации: 12.01.2016