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

<b>platform</b>

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

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

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

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

<b>navigator.userAgent</b>

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

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

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

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

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

<b>//</b>

<b>// &quot;webkit&quot;: Safari или Chrome: version содержит номер сборки WebKit </b>

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

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

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

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

<b>//</b>

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

<b>var browser = (function() {</b>

<b>  var s = navigator.userAgent.toLowerCase();</b>

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

<b>      /(opera)(?:.*version)?[ \/]([\w.]+)/.exec(s) ||</b>

<b>      /(msie) ([\w.]+)/.exec(s) ||</b>

<b>      !/compatible/.test(s) &amp;&amp; /(mozilla)(?:.*? rv:([\w.]+))?/.exec(s) ||</b>

<b>      [];</b>

<b>  return { name: match[1] || &quot;&quot;, version: match[2] || &quot;0&quot; };</b>

<b>}());</b>

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

<b>onLine</b>

Свойство

<b>navigator.onLine</b>
(если существует) определяет, подключен ли броузер к сети. Приложениям может потребоваться сохранять информацию о состоянии локально (с использованием приемов, описываемых в главе 20), если броузер не подключен к сети.

<b>geolocation</b>

Объект

<b>Geolocation</b>
, определяющий API для выяснения географического положения пользователя. Подробнее об этом рассказывается в разделе 22.1.

<b>javaEnabled()</b>

Нестандартный метод, который должен возвращать

<b>true</b>
, если броузер способен выполнять Java-апплеты.

<b>cookiesEnabled()</b>

Нестандартный метод, который должен возвращать

<b>true</b>
, если броузер способен сохранять cookies. Если броузер настроен на сохранение cookies только для определенных сайтов, этот метод может возвращать некорректное значение.

14.4.2. Объект Screen

Свойство

<b>screen </b>
объекта
<b>Window</b>
ссылается на объект
<b>Screen</b>
, предоставляющий информацию о размере экрана на стороне пользователя и доступном количестве цветов. Свойства
<b>width</b>
и
<b>height</b>
возвращают размер экрана в пикселах. Свойства
<b>availWidth</b>
и
<b>availHeight</b>
возвращают фактически доступный размер экрана; из них исключается пространство, требуемое для таких графических элементов, как панель задач. Свойство
<b>colorDepth</b>
возвращает количество битов на пиксел, определяющих цвет. Типичными значениями являются 16, 24 и 32.

Свойство

<b>window.screen</b>
и объект
<b>Screen</b>
, на который оно ссылается, являются нестандартными, но они реализованы практически во всех броузерах. Объект
<b>Screen</b>
можно использовать, чтобы определить, не выполняется ли веб-приложение на устройстве с маленьким экраном, таком как нетбук. При ограниченном пространстве экрана, например, можно было бы использовать шрифты меньшего размера и маленькие изображения.

14.5. Диалоги

Объект Window обладает тремя методами для отображения простейших диалогов. Метод alert() выводит сообщение и ожидает, пока пользователь закроет диалоговое окно. Метод confirm() предлагает пользователю щелкнуть на кнопке ОК или Cancel (Отмена) и возвращает логическое значение. Метод prompt() выводит сообщение, ждет ввода строки пользователем и возвращает эту строку. Ниже демонстрируется пример использования всех трех методов: