Вы находитесь здесь:

Простая JavaScript-идентификация IE 5.x

2007-07-21

Свойство document.compatMode, в относительно современных браузерах содержащее текущий режим рендеринга (CSS1Compat или BackCompat), в IE 5.x просто отсутствует — ведь эти версии IE банально понятия не имеют о существовании стандартов и, соответственно, различных режимов рендеринга. Таким образом, мы можем однозначно идентифицировать («сниффить») IE ниже 6-й версии.

function isIe5x() {
    return !document.compatMode && document.all;
}

Основная идея в том, что свойство document.compatMode, в относительно современных браузерах содержащее текущий режим рендеринга (CSS1Compat или BackCompat), в IE 5.x просто отсутствует — ведь эти версии IE банально понятия не имеют о существовании стандартов и, соответственно, различных режимов рендеринга. Таким образом, мы можем однозначно идентифицировать («сниффить») IE ниже 6-й версии.

Дополнительная проверка на поддержку проприетарного document.all, придуманного в Microsoft, позволяет отсечь браузер Safari, который, возможно, из излишне идеалистических воззрений разработчиков создавался исключительно в расчёте на web-стандарты и в котором (по меньшей мере, применительно к версии 3.02 Beta для Windows), как ни странно, данное свойство, в отличие от любого другого современного браузера (Firefox, Opera, Konqueror или IE 6+), тоже не поддерживается.

В отличие от распространённых методов, определяющих версию браузера вверх (например, IE 5+), данный способ позволяет надёжно распознать IE ниже версии 6 и при этом непосредственно внутри скрипта, не прибегая к обходным манёврам вроде условных комментариев.


Комментарии | добавить
Внимание
Эта заметка перенесена из старого блога, где к ней есть комментарии, на данной странице не отражённые.

Ваш комментарий

Вставка переводов строк и разбиение на абзацы происходит автоматически. HTML и BBCode не поддерживаются.

(не публикуется)
(спам бесполезен)
→ 
(можно будет отписаться)

© 2001—2010 Марат Таналин (http://TANALIN.com/)

Перепечатка любых материалов сайта в любом объёме запрещена


Статистика
  • Рейтинг@Mail.ru