Я никогда не изучал JavaScript, но думаю, что это довольно простая проблема. Просто хотел узнать, какой метод наиболее рекомендуется в наши дни.
Как лучше всего автоматически перенаправить кого-то на другую веб-страницу?
Ответы (4)
// use this to avoid redirects when a user clicks "back" in their browser
window.location.replace('http://somewhereelse.com');
// use this to redirect, a back button call will trigger the redirection again
window.location.href = "http://somewhereelse.com";
// given for completeness, essentially an alias to window.location.href
window.location = "http://somewhereelse.com";
редактировать: похоже, что пользователь, опубликовавший лучший ответ, ушел ТАК, я объединил его ответы здесь.
Самый рекомендуемый? Не делать этого. HTTP намного лучше подходит для этой работы, чем JavaScript ( поисковые системы следуют за ними, вы можете указать, постоянно это или нет, они быстрее и т. д.).
В противном случае
Если вы хотите немедленное перенаправление:
window.location.replace('http://example.com/');
Это заменит текущий URI новым URI в истории браузера, поэтому кнопка «Назад» не приведет пользователя на страницу, которая сразу же снова перенаправит его вперед.
Если вы действительно не хотите перенаправлять, но хотите отправить пользователя куда-то в ответ на событие:
window.location.href = 'http://example.com/';
Не забудьте иметь запасной вариант, отличный от JavaScript. Ссылка обычно является лучшим вариантом, но она зависит от контекста.
Переадресация с задержкой по времени — еще худшая идея. Единственная причина их использования - если вы хотите отобразить сообщение для пользователя, а пользователи читают что-то с разной скоростью (и заставляют их сидеть на другой вкладке, пока они делают что-то еще). Если сообщение достаточно важно для показа, оно должно оставаться на экране до тех пор, пока пользователь не прочитает его и не щелкнет ссылку на следующую страницу.
Одна важная вещь, которую следует помнить при перенаправлении страницы с использованием JavaScript, — всегда предоставляйте перенаправление без JavaScript! Подойдет ссылка или лучше тег <META>
, например: <meta http-equiv="refresh" content="2;url=http://example.com">
В наши дни я думаю, что наиболее рекомендуемым методом является не использовать javascript (или мета) перенаправляет. Вам это действительно нужно? Не могли бы вы вместо этого использовать HTTP-заголовок перенаправления?
Руководство W3C по обеспечению доступности веб-контента (7.4) также не рекомендует создавать автоматически обновляемые страницы, поскольку большинство веб-браузеров не позволяют пользователю отключать или контролировать частоту обновления.