Добрый день, уважаемые читатели!
Читал я на новогодних праздниках книгу: «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).
На этом все. Спасибо за внимание.
Если вы когда-либо использовали данную конструкцию — пишите в комментариях 🙂 Поделитесь опытом 🙂