Чтение онлайн

на главную - закладки

Жанры

JavaScript. Подробное руководство, 6-е издание
Шрифт:

14.4. Информация о броузере и об экране

Иногда сценариям бывает необходимо получить информацию о веб-броузере, в котором они выполняются, или об экране, на котором отображается броузер. В этом разделе описываются свойства

navigator
и
screen
объекта
Window
. Эти свойства ссылаются, соответственно, на объекты
Navigator
и
Screen
, содержащие информацию, которая дает возможность подстроить поведение
сценария под существующее окружение.

14.4.1. Объект Navigator

Свойство

navigator
объекта
Window
ссылается на объект
Navigator
, содержащий общую информацию о номере версии и о производителе броузера. Объект
Navigator
назван «в честь» броузера Netscape Navigator, но он также поддерживается во всех других броузерах. (Кроме того, IE поддерживает свойство
clientlnformation
как нейтральный синоним для
navigator
. К сожалению, другие броузеры свойство с таким именем не поддерживают.)

В прошлом объект

Navigator
обычно использовался сценариями для определений типа броузера - Internet Explorer или Netscape. Однако такой подход к определению типа броузера сопряжен с определенными проблемами, т. к. требует постоянного обновления с появлением новых броузеров или новых версий существующих броузеров. Ныне более предпочтительным считается метод на основе проверки функциональных возможностей (раздел 13.4.3). Вместо того чтобы делать какие-либо предположения о броузерах и их возможностях, гораздо проще прямо проверить наличие требуемой функциональной возможности (например, метода или свойства).

Однако иногда определение типа броузера может представлять определенную ценность. Один из таких случаев - возможность обойти ошибку, свойственную определенному типу броузера определенной версии. Объект

Navigator
имеет четыре свойства, предоставляющих информацию о версии работающего броузера, и вы можете использовать их для определения типа броузера:

appName

Название веб-броузера. В IE это строка «Microsoft Internet Explorer». В Firefox значением этого свойства является строка «Netscape». Для совместимости с существующими реализациями определения типа броузера значением этого свойства в других броузерах часто является строка «Netscape».

appVersion

Обычно значение этого свойства начинается с номера версии, за которым следует другая информация о версии броузера и его производителе. Обычно в начале строки указывается номер 4.0 или 5.0, свидетельствующий о совместимости с четвертым или пятым поколением броузеров. Формат строки в свойстве

appVersion
не определяется стандартом, поэтому невозможно организовать разбор этой строки способом, не зависящим от типа броузера.

userAgent

Строка, которую броузер посылает в http-заголовке USER-AGENT. Это свойство обычно содержит ту же информацию, что содержится в свойстве

appVersion
, а также может включать дополнительные сведения. Как и в случае со свойством
appVersion
,
формат представления этой информации не стандартизован. Поскольку это свойство содержит больше информации, именно оно обычно используется для определения типа броузера.

platform

Строка, идентифицирующая операционную систему (и, возможно, аппаратную платформу), в которой работает броузер.

Сложность свойств объекта

Navigator
делает невозможной универсальную реализацию определения типа броузера. На раннем этапе развития Всемирной паутины было написано немало программного кода, зависящего от типа броузера, проверяющего свойства, такие как
navigator.appName
. Создавая новые броузеры, производители обнаружили, что для корректного отображения содержимого существующих веб-сайтов они должны устанавливать значение «Netscape» в свойстве
appName
. По тем же причинам потерял свою значимость номер в начале значения свойства
appVersion
, и в настоящее время реализация определения типа броузера должна опираться на строку в свойстве
navigator.userAgent
, имеющую более сложный формат, чем ранее. Пример 14.3 демонстрирует, как с помощью регулярныx выражений (взятых из библиотеки jQuery) можно получить из свойства
navigator.userAgent
название броузера и номер версии.

Пример 14.3. Определение типа броузера с помощью свойства

navigator.userAgent

// Определяет свойства browser.name и browser.version, позволяющие выяснить

// тип клиента. За основу взят программный код из библиотеки jQuery 1.4.1.

// Оба свойства, name и version, возвращают строки, и в обоих случаях

// значения могут отличаться от фактических названий броузеров и версий.

// Определяются следующие названия броузеров:

//

// "webkit": Safari или Chrome: version содержит номер сборки WebKit

// "opera": Opera; version содержит фактический номер версии броузера

// "mozilla": Firefox или другие броузеры, основанные на механизме gecko;

// version содержит номер версии Gecko

// "msie": IE; version содержит фактический номер версии броузера

//

// Например, для Firefox 3.6 возвращаются: {name: "mozilla", version: "1.9.2"}

var browser = (function {

var s = navigator.userAgent.toLowerCase;

var match = /(webkit)[ \/]([\w.]+)/.exec(s) ||

Поделиться:
Популярные книги

Комментарии к «Евгению Онегину» Александра Пушкина

Набоков Владимир Владимирович
Документальная литература:
критика
5.00
рейтинг книги
Комментарии к «Евгению Онегину» Александра Пушкина

Дважды одаренный. Том III

Тарс Элиан
3. Дважды одаренный
Фантастика:
альтернативная история
аниме
фэнтези
фантастика: прочее
юмористическое фэнтези
5.50
рейтинг книги
Дважды одаренный. Том III

Под-Московье

Калинкина Анна
Фантастика:
боевая фантастика
постапокалипсис
5.00
рейтинг книги
Под-Московье

Гримуар темного лорда VIII

Грехов Тимофей
8. Гримуар темного лорда
Фантастика:
боевая фантастика
альтернативная история
аниме
фэнтези
фантастика: прочее
попаданцы
5.25
рейтинг книги
Гримуар темного лорда VIII

Из истории русской, советской и постсоветской цензуры

Рейфман Павел Семенович
Научно-образовательная:
история
5.00
рейтинг книги
Из истории русской, советской и постсоветской цензуры

Точка Бифуркации XI

Смит Дейлор
11. ТБ
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Точка Бифуркации XI

50 знаменитых городов мира

Скляренко Валентина Марковна
31. 100 знаменитых
Научно-образовательная:
история
4.75
рейтинг книги
50 знаменитых городов мира

Барон диктует правила

Ренгач Евгений
4. Закон сильного
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Барон диктует правила

Последний реанорец. Том XII – Часть II

Павлов Вел
12. Высшая Речь
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний реанорец. Том XII – Часть II

Под знаком Песца

Видум Инди
1. Под знаком Песца
Фантастика:
альтернативная история
аниме
5.00
рейтинг книги
Под знаком Песца

Дневники

Толстой Лев Николаевич
Проза:
русская классическая проза
6.83
рейтинг книги
Дневники

Искусство управления складом

Улыбина Юлия Николаевна
Деловая литература:
о бизнесе популярно
5.00
рейтинг книги
Искусство управления складом

Испытания

Мусаханов Валерий Яковлевич
Проза:
новелла
повесть
5.00
рейтинг книги
Испытания

Экспансия

Каменев Алекс
8. Цитадели гордыни
Фантастика:
героическая фантастика
боевая фантастика
5.00
рейтинг книги
Экспансия