Как перенаправить посетителя на другую Web-страницу?
Проблема
Мне нужно перенаправить посетителя на другую Web-страницу. Есть ли какие-то
способы сделать это?
Решение 1
Использовать метатег следующего вида:
<МЕТА HTTP-EQUIV= "Refresh" CONTENT="<Тайм-аут>;
URL,=<Интернет-адрес">
Этот метатег записывается в заголовке Web-страницы (в теле <head>).
Встретив его, Web-обозреватель через указанный в секундах Тайм-аут откроет
Web-страницу С заданным Интернет-адресом.
Достоинство этого способа в том, что он работает всегда, даже если исполнение
Web-сценариев было отключено пользователем Web-обозревателя. Недостаток —
"статичность"; перенаправление выполняется всегда, в любом случае (из-за этого
его называют статичным перенаправлением).
Народ советует
Этот способ лучше использовать в тех случаях, когда сайт меняет свой
интернет-адрес. В этом случае по старому адресу оставляют страницу, содержащую
указанный выше метатег, в параметрах которого записан новый интернет-адрес
сайта.
Решение 2
Присвоить нужный интернет-адрес свойству href объекта location, вложенного В
объект window.
Этот же способ имеет то неоспоримое достоинство, что позволяет перенаправить
посетителя на разные страницы в зависимости от каких-либо условий
(например, используемого им Web-обозревателя). Поэтому такое перенаправление
называется динамическим.
Пример 1
Вот HTML-код Web-странички, выполняющей перенаправление на другую страницу
через 5 секунд после ее открытия:
<HTML> <HEAD>
<TITLE>Перенаправление</TITLE> <SCRIPT
TYPE="text/javascript"> function bodyOnLoad() {
window.setTimeout(goToOtherPage, 5000); }
function goToOtherPage() {
window.location.href = "OtherPage.html"; } </SCRIPT> </HEAD>
<BODY ONLOAD="bodyOnLoad();">
<Р>Внимание! Через 5 секунд вы будете перенаправлены на другую
Web-страницу.</Р> </BODY> </HTML>
Метод setTimeout вызывает функцию, переданную в качестве первого параметра,
через заданное вторым параметром количество миллисекунд. В нашем случае задано
5000 миллисекунд — 5 секунд.
Пример 2
А вот еще одна Web-страница, перенаправляющая пользователей Internet Explorer
на одну страницу, а пользователей других Web-обозревателей — на другую:
<HTML> <HEAD»
<TITLE>Перенаправление</TITLE> <SCRIPT
TYPE="text/javascript"> function bodyOnLoad() { var piObject =
jspsGetProgramlnfо();
if (piObject.programlnfo == JSPS_GPI_MSIE)
window.location.href = "index_ie.html" else
window.location.href = "index_others.html"
} </SCRIPT> </HEAD>
<BODY ONLOAD="bodyOnLoad();">
</BODY>
</HTML>
Внимание!
Приведенный пример использует функцию jspsGetPrograminfo, чье объявление
представлено в листинге 3.1.