Вариация седьмая: с определением типа браузера
Последний пример сценария, который мы рассмотрим в этом разделе, показывает, как программа JavaScript может легко определить тип и версию браузера. На рис. 1.6 показан результат просмотра документа HTML с этим сценарием при помощи браузера Microsoft Internet Explorer.

Рис. 1.6. Информация о браузере Microsoft Internet Explorer
То, что вы увидите, просмотрев этот же документ браузером Netscape Navigator, представлено на рис. 1.7.

Рис. 1.7. Информация о браузере Netscape Navigator
Давайте посмотрим на текст сценария, позволяющего извлекать подобную информацию. Он представлен в листинге 1.8.
Листинг 1.8. Файл chapter1/HelloInfo/HelloInfo.html
<HTML>
<HEAD>
<TITLE>Hello, world!</TITLE>
</HEAD>
<BODY BGCOLOR=white>
<H1>Something about you...</H1>
<TABLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
document.writeln("<TR><TD>Navigator Name:</TD><TD>"
+ navigator.appName.bold() + "</TD></TR>");
document.writeln("<TR><TD>Navigator Code Name:</TD><TD>"
+ navigator.appCodeName.bold() + "</TD></TR>");
document.writeln("<TR><TD>Navigator version:</TD><TD>"
+ navigator.appVersion.bold() + "</TD></TR>");
document.writeln("<TR><TD>User agent:</TD><TD>"
+ navigator.userAgent.bold() + "</TD></TR>");
// -->
</SCRIPT>
</TABLE>
</BODY>
</HTML>
Здесь сценарий JavaScript формирует в документе HTML строки таблицы, записывая в них названия различных свойств объекта navigator и значения, соответствующие этим свойствам.
Объект navigator - это сам браузер. Обращаясь к свойствам этого объекта, можно получить различную информацию о браузере.
Наиболее интересны для нас свойства navigator.appName и navigator.appVersion, так как они позволяют однозначно определить тип браузера и его версию. Обладая этой информацией, вы можете динамически “приспособить” документ HTML к навигатору, установленному у пользователя.
Заметим, что в браузере Microsoft Internet Explorer реализован еще один метод определения версии браузера, который мы рассмотрим позже. К сожалению, этот метод несовместим с браузером Netscape Navigator.