русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Объект Navigator


Дата добавления: 2015-07-09; просмотров: 1125; Нарушение авторских прав


 

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

 

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


 

14.3. Объекты Window, Screen и Navigator
   

 

if (window.addEventListener) {

// Если метод addEventListener() поддерживается, использовать его.

// Это случай совместимых со стандартами броузеров, таких как

// Netscape, Mozilla и Firefox.

}

else if (window.attachEvent) {

// Иначе, если существует метод attachEvent(), использовать его.

// Это относится к IE и другим имитирующим его нестандартным броузерам.

}

else {

// Иначе ни один из методов недоступен.

// Это характерно для старых броузеров, не поддерживающих DHTML.



}

 

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

 

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

 

appName

 

Название веб_броузера. В IE это строка "Microsoft Internet Explorer", в Firefox и других броузерах, в основе которых лежит программный код Netscape (та_ ких как Mozilla или собственно Netscape), значением этого свойства является строка "Netscape".

 

appVersion

 

Номер версии и/или другая информация о версии броузера. Обратите внима_ ние: этот номер следует рассматривать как внутренний номер версии, по_ скольку он не всегда соответствует номеру, отображаемому для пользовате_ ля. Так, Netscape 6 и последовавшие за ним версии Mozilla и Firefox сообща_ ют о себе номер версии 5.0. Кроме того, все версии IE от 4 до 6 сообщают о себе номер версии 4.0, что указывает на совместимость с базовой функционально_ стью броузеров 4_го поколения.

 

userAgent

 

Строка, которую броузер посылает в HTTP_заголовке USER_AGENT. Это свойство обычно содержит всю ту информацию, которая содержится в свойствах app_ Name и appVersion, а также может содержать дополнительные сведения. Одна_ ко формат представления этой информации не стандартизован, поэтому не_ возможно организовать разбор этой строки способом, не зависящим от типа броузера.

 

appCodeName

 

Кодовое имя броузера. Для Netscape используется кодовое имя «Mozilla». Для совместимости IE делает то же самое.

 

platform

 

Аппаратная платформа, на которой работает броузер. Это свойство было до_ бавлено в JavaScript 1.2.


 

296 Глава 14. Работа с окнами броузера

 

 

Рис. 14.1. Свойства объекта Navigator

 

Следующие строки JavaScript_кода выводят значения всех свойств объекта Navi_ gator в диалоговом окне:

 

var browser = "СВЕДЕНИЯ О БРОУЗЕРЕ:\n"; for(var propname in navigator) {

browser += propname + ": " + navigator[propname] + "\n"

}

alert(browser);

 

Диалоговое окно, представленное на рис. 14.1, выводится при запуске этого сце_ нария в IE 6.

 

Как видно из рис. 14.1, свойства объекта Navigator иногда содержат более слож_ ную информацию, чем та, которая нас интересует. Например, обычно достаточно знать лишь первые цифры из свойства appVersion. Для извлечения из объекта Navigator только необходимой информации о броузере часто используются мето_ ды parseInt() и String.indexOf(). В примере 14.3 показан программный код, обра_ батывающий свойства объекта Navigator и сохраняющий их в объекте с именем browser. С обработанными свойствами иметь дело проще, чем с исходными значе_ ниями свойств объекта navigator. Общий термин для такого кода – анализатор клиента (client sniffer), и в Интернете можно найти код более сложных и универ_сальных анализаторов. (Например, http://www.mozilla.org/docs/web'developer/ sniffer/browser_type.html.) Однако для многих целей прекрасно работают и такиепростые фрагменты кода.

 

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

/**

* browser.js: простейший анализатор клиента

 

*

* Этот модуль объявляет объект с именем "browser", пользоваться которым

* гораздо проще, чем объектом "navigator".

*/

var browser = {

version: parseInt(navigator.appVersion),

isNetscape: navigator.appName.indexOf("Netscape") != _1,


 

14.4. Методы управления окнами
   

 

isMicrosoft: navigator.appName.indexOf("Microsoft") != _1

 

};

 

Прежде чем закончить этот раздел, необходимо сделать одно важное замечание: свойства объекта Navigator не могут служить основой для надежной идентифика_ ции броузера. Например, в Firefox 1.0 свойство appName имеет значение "Net_ scape", а свойство appVersion начинается со значения 5.0. В броузере Safari, кото_ рый не имеет ничего общего с линейкой броузеров проекта Mozilla, это свойство возвращает то же самое значение! В IE 6.0 свойство appCodeName имеет значение "Mozilla", а свойство appVersion начинается со значения 4.0. Причина такого по_ ложения вещей кроется в следующем: в прошлом было создано так много про_ граммного кода, анализирующего тип броузера, что производители броузеров не могут позволить себе изменять значения этих свойств, поскольку это приведет к нарушению обратной совместимости. Кстати, это одна из причин, почему ана_ лиз типа броузера все больше выходит из употребления и все чаще используются методики на основе проверки функциональных возможностей.

 



<== предыдущая лекция | следующая лекция ==>
Геометрия окна | Открытие окон


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.004 сек.