Зачем нужна DOM-модель
Так как getElementByld является методом объектной модели документа W3C DOM, совместимые браузеры пропустят его из-за применения условного оператора if, не поддерживающие модель DOM браузеры не поймут getElementByld и перейдут к странице, содержимое которой им доступно.
Переадресация JavaScript обнуляет список функции Назад в браузере, и это нехорошо. Но вам необязательно использовать в этой ситуации window, location. Вы можете применить любой удобный вам и вашим пользователям способ.
Преимущества
Нет необходимости создавать, проверять и постоянно обновлять сложный скрипт по определению версии браузера пользователя. Мы не проверяем версии браузеров, мы контролируем совместимость со стандартами W3C. Очень просто, логично и выгодно.
Недостатки
Как уже упоминалось ранее, этот способ не работает для старых версий Opera, которые думают, что понимают DOM. Вместо того чтобы перейти на предлагаемую страницу с простым контентом, эти браузеры сначала используют знакомый метод getElementByld, а затем «подвисают», будучи не в силах обработать открывгдуюся Web-страницу. Как мы можем решить эту проблему? Мы не можем использовать старомодное определение браузера, так как по умолчанию Opera идентифицирует себя как Internet Explorer. Если мы используем альтернативную страницу для пользователей Netscape , мы можем разместить на нашей «стандартной» странице ссылку-приглашение для пользователей старых версий Opera проследовать на эту более простую страницу.
Недостатком этого способа является то, что данная ссылка будет видна абсолютно всем пользователям, что негативно скажется на образе вашего сайта, а вас могут заподозрить в непрофессионализме. Помимо этого, ссылка вроде Пользователи Opera, нажмите здесь, может заставить и пользователей Opera покинуть динамическую страницу, которую их браузер прекрасно поддерживает.