Редирект на JavaScript


Редирект - это автоматическое перенаправление пользователя с одного адреса на другой. То есть человек заходит на один сайт, а оказывается совсем на другом (либо на другой странице одного сайта). Я, думаю, что такое Вы видели достаточно часто. Иногда редирект делают с задержкой. В общем, тема очень важная, и её я рассмотрю в этой статье. Вообще говоря, речь пойдёт сейчас об объекте Location, который является свойством объекта Document. У объекта Location есть свойство href, с помощью которого и реализуется редирект на JavaScript. Данное свойство доступно и для чтения, и для записи. Для начала давайте его прочитаем: document.write(document.location.href); В результате Вы увидите полный адрес к Вашему скрипту. Теперь сделаем простейший редирект на JavaScript: document.location.href = 'http://myrusakov.ru'; Таким образом, все пользователи, которые запустят этот скрипт будут автоматически переходить на сайт: "http://myrusakov.ru". Теперь давайте сделаем классическую задачу, которые реализуют очень часто. Допустим, у Вас был сайт: http://a.ru. Затем Вы купили новый домен для Вашего сайта и его адрес стал: http://b.ru. И хотите, чтобы все посетители переходили с http://a.ru на новый http://b.ru. Причём, Вы хотите, чтобы они знали, что у Вашего сайта новый адрес. Знакома ситуация? Так вот, реализуется это с помощью редиректа с задержкой: <script language = 'javascript'> var delay = 5000; setTimeout("document.location.href='http://b.ru'", delay); </script> <p>У нашего сайта новый адрес: <b>http://b.ru</b>. Через 5 секунд Вы будете перенаправлены на него. Если этого не происходит, то перейдите самостоятельно: <a href='http://b.ru'>http://b.ru</a> </p> Сначала пользователь увидит сообщение, а через 5 секунд он уже перейдёт по новому адресу. Если вдруг у пользователя отключён JavaScript, то тогда он может перейти самостоятельно, просто щёлкнув по ссылке. Как видите, сложное слово редирект оказалось очень простым не только в понимании, но и в использовании. И реализация редиректа в JavaScript очень и очень простая.