Как получить сведения о Web-обозревателе
Оглавление
Как получить сведения о Web-обозревателе
Страница 2
Страница 2 из 2
Лаконичные Mozilla, Firefox и Navigator не принесут нам таких сюрпризов, как
многоликий (даже чересчур) Web-обозреватель Opera. Формат выдаваемого ими
значения свойства appversion таков:
<Версия исходного кода ядра> (<Олерационная система>;
<Язык>) Автор получил такое значение для русской версии Firefox
1.5.0.3:
5.0 (Windows; ru)
для Mozilla 1.7 и Navigator 7 preview 1:
5.0 (Windows; en-US)
Народ предупреждает!
Заметим, что Mozilla и Navigator выдают пятибуквенный код языка, например,
"ru-RU" для русского или "en-US" для американского английского. Все остальные
Web-обозреватели выдают двухбуквенный код языка, например, "ru" или "еп".
Значение, возвращаемое свойством userAgent, также сильно зависит от
Web-обозревателя. Internet Explorer, например, выдаст вот что:
<3начение свойства appCodeName>/<Значение свойства
appVersion>
Например:
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR
1,1.4322)
Web-обозреватель Opera, "притворяющийся" Internet Explorer 6.0 или Mozilla
5.0, при обращении к свойству userAgent выдаст такую же строку:
<3начение свойства appCodeName>/<Значение свойства appVersion>
Opera<Версия Орега>
Например,
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 8.54
в режиме совместимости с Internet Explorer 6.0 и
Mozilla/5.0 (Windows NT 5.1; U; ru) Opera 8.54
в режиме совместимости с Mozilla 5.0. Заметим, то в обоих случаях в конце
строки указывается версия Opera, так что мы всегда сможем выяснить, Opera ли
это.
Web-обозреватель Opera, "представляющийся самим собой", выдаст такое значение
этого свойства:
<3начение свойства appCodeName>/<Значение свойства
appVersion>
т. е. как и Internet Explorer. Например:
Opera/8.54 (Windows NT 5.1; U; ru)
Firefox, как обычно, идет своим путем. Значение свойства userAgent в его
случае будет таким:
Mozilla/<Версия исходного кода ядра>(<Название операционной
системы>; U|l; <Версия операционной системы>;<Язык>;
<Ближайшая версия Mozilla>) <Версия программного
ядра>Firefox/<Версия Firefox>
Например:
Mozilla/5.0 (Windows; U; Windows NT 5.1; rU; rv:1.8.0.3)
Gecko/20060426Firefox/1.5.0.3
Народ поясняет
Gecko — это название программного ядра Firefox. На этом ядре также построен
его "прародитель" Mozilla (ныне — SeaMonkey).
На очереди — Mozilla. Он в этом смысле мало отличается от своего "потомка"
Firefox и выдаст вот что:
Mozilla/<Версия исходного кода ядра>(<Название операционной
системы>; U|I; <Версия операционной системы>;<Язык>; <Версия
Mozilla>) <Версия программного ядра>
Например:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7) Gecko/20040616
Что касается "ветерана" Navigator, то вот формат его значения свойства
userAgent:
Mozilla/<Версия исходного кода ядра>(<Название операционной
системы>; U|I; <Версия операционной системь>;<Язык>;
<Ближайшая версия Mozilla>) <Версия программного
ядра>Netscape/<Версия $avigator>
На своем компьютере автор получил вот что:
Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.0rc2)
Gecko/20020512Netscape/7.0b1
Народ замечает
Да, со свойствами appVersion и userAgent каши не сваришь... Мало того, что
они возвращают довольно сложную строку, которую еще нужно разобрать, так еще и
строка эта разная для разных программ Web-обозревателей (и даже для различных
режимов работы в случае Opera). Хотя, так ли уж часто нам нужны версия
программного ядра или точные сведения о .NET... Да и точная версия
Web-обозревателя нужна не так уж и часто.
Пример
Вот простенькая Web-страничка, выводящая язык, поддерживаемый программой
Web-обозревателя (русский или английский):
<HTML> <HEAD>
<TITLE>Язык Web-обозревателя</TITLE> </HEAD>
<BODY>
<SCRIPT TYFE="text/javascript"> var langName = ""; if
(navigator.appName == "Microsoft Internet Explorer")
langName = navigator.browserLanguage else
langName = navigator.language; switch (langName.substring(0, 2)) { case
"ru":
langDesc = "русский"; break; case "en":
langDesc = "английский"; break; default:
langDesc = "<He установлена>"; } document.write("<Р>Язык,
поддерживаемый вашим Web-обозревателем, -" + langDesc + ".</P>");
</SCRIPT> </BODY> </HTML>
Заметим, что язык проверяется по первым двум символам строки, возвращаемой
свойством browserLanguage или language. Это нужно для поддержки Mozilla и
Navigator, которые, как мы уже знаем, возвращают пятибуквенный код языка.
« Пред. - След.