Перенаправление клиента на разные страницы в зависимости от Web-браузера

Опубликовал: Sunday, April 15, 2024 в категории HTML | Пока нет комментариев

Объект navigator предоставляет информацию о самом Web-браузере.

Свойства объекта navigator:

? appName — имя Web-браузера;

? appCodeName — кодовое имя версии Web-браузера;

? appVersion — версия Web-браузера;

? appMinorVersion — вторая цифра в номере версии Web-браузера;

? userAgent — комбинация свойств appCodeName и appVersion;

? cpuClass — тип процессора клиентского компьютера;

? platform — название клиентской платформы;

? systemLanguage — код языка операционной системы клиента;

? browserLanguage — код языка Web-браузера;

? userLanguage — код языка Web-браузера;

? onLine — режим подключения: true, если клиент в настоящее время подключен к Интернету, и false, если отключен;

? cookieEnabled — режим работы cookie: возвращает true, если прием

cookie разрешен.

Продемонстрируем все на примере (листинг 3.51).

Листинг 3.51. Информация о Web-браузере

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<title>Информация о Web-браузере</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-

1251">

</head>

<body>

<h1 style="text-align: center">Информация о Web-браузере</h1>

<div>

<script type="text/javascript">

<!-

document.write(navigator.appName + " – имя Web-браузера.<br>");

document.write(navigator.appCodeName);

document.write(" – кодовое имя версии Web-браузера.<br>"); document.write(navigator.appVersion + " – версия Web-браузера.<br>"); document.write(navigator.appMinorVersion);

document.write(" – вторая цифра в номере версии Web-браузера.<br>"); document.write(navigator.userAgent + " – комбинация свойств "); document.write("appCodeName и appVersion.<br><br>"); document.write(naviga*tor.cpuClass);

document.write(" – тип процессора клиентского компьютера.<br>");

document.write(navigator.platform);

document.write(" – название клиентской платформы.<br>");

document.write(navigator.systemLanguage);

document.write(" – код языка операционной системы клиента.<br>");

document.write(navigator.browserLanguage);

document.write(" – код языка Web-браузера (browserLanguage).<br>");

document.write(navigator.userLanguage);

document.write(" – код языка Web-браузера (userLanguage).<br><br>");

if (navigator.onLine) {

document.write("Клиент в настоящее время подключен к Интернету.");

}

else {

document.write("Клиент в настоящее время отключен от Интернета.");

}

document.write("<br>");

if (navigator.cookieEnabled) document.write("Прием cookie разрешен.");

else document.write("Прием cookie запрещен.");

//->

</script>

</div>

</body>

</html>

Вывести все поддерживаемые свойства и методы объекта navigator позволя-

ет следующий код:

for (var p in navigator) {

document.write(p + " ==> " + navigator[p] + "<br>");

}

Мы уже не раз говорили, что разные Web-браузеры могут по-разному выпол- нять программный код. По этой причине часто приходится писать персо- нальный код под каждый Web-браузер. В листинге 3.52 приведен пример

скрипта, перенаправляющего клиента на разные страницы в зависимости от названия Web-браузера.

Листинг 3.52. Перенаправляем клиента на разные страницы в зависимости от названия Web-браузера

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"

"http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<title>Перенаправляем клиента на разные страницы</title>

<meta http-equiv="Content-Type" content="text/html; charset=windows-

1251">

</head>

<body>

<script type="text/javascript">

<!-

var name1 = navigator.appName;

if (name1.indexOf("Explorer") != -1) {

var Version1 = navigator.appVersion;

var p =/compatible\;\s+\w+\s+(([0-9]+)\.[0-9]+)\;/i;

p.exec(Version1);

if (RegExp.$2=="6") {

window.location.href = "explorer6.html";

}

else {

if (RegExp.$2=="7") {

window.location.href = "explorer7.html";

}

else {

if (parseInt(RegExp.$2)>=8) {

window.location.href = "explorer8.html";

}

else {

window.location.href = "explorer.html";

}

}

}

}

if (navigator.userAgent.indexOf("Firefox") != -1) {

window.location.href = "firefox.html";

}

if (name1.indexOf("Opera") != -1) {

window.location.href = "opera.html";

}

//->

</script>

<p>Информация для других Web-браузеров</p>

</body>

</html>

В случае с Microsoft Internet Explorer мы проверяем также версию Web- браузера с помощью регулярных выражений. Таким образом, можно напи- сать Web-страницу не только под определенный Web-браузер, но и под опре- деленную его версию.

П РИМ Е ЧАНИЕ

Так как поисковые машины не умеют обрабатывать код JavaScript, на прак- тике лучше не использовать перенаправление, а обрабатывать различия на одной Web-странице. Кроме того, вместо определения названия и версии лучше использовать метод проверки функциональных возможностей Web- браузера. Например, проверить наличие необходимого метода, указав его без круглых скобок в операторе if.

В разд. 1.16 мы рассмотрели специальный тег, который можно использовать в Web-браузере Internet Explorer. Для языка JavaScript Internet Explorer также предоставляет условные комментарии. Они начинаются с комбинации сим- волов /*@cc_on и заканчиваются комбинацией @*/:

/*@cc_on

window.alert("Это инструкция для Internet Explorer");

@*/

Внутри такой конструкции могут быть указаны ключевые слова @if, @else и

@end. Например, выполнить один блок выражений только в Internet Explorer,

а другой блок в остальных Web-браузерах позволяет следующий код:

/*@cc_on

@if (@_jscript)

window.alert("Это сообщение выведет Internet Explorer");

@else*/

// Этот блок в IE выполнен не будет

window.alert("А это сообщение в другом Web-браузере");

/*@end

@*/

Источник: Прохоренок Н. А. HTML, JavaScript, PHP и MySQL. Джентльменский набор Web-мастера. — 3-е изд., перераб. и доп. — СПб.: БХВ-Петербург, 2010. — 912 с.: ил. + Видеокурс (на CD-ROM) — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *