Каков наилучший способ автоматического перенаправления кого-либо на другую веб-страницу?
-
03-07-2019 - |
Вопрос
Я никогда не изучал JavaScript, но думаю, что это довольно простая проблема.Просто хотел знать, какой метод в наши дни рекомендуется больше всего.
Решение
// 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">
В наши дни я думаю, что наиболее рекомендуемым методом является не делать яваскрипт (или мета) перенаправления.Вам это действительно нужно?Не могли бы вы вместо этого использовать HTTP-заголовок перенаправления?
Рекомендации W3C по доступности веб-контента (7.4) также не рекомендуют создавать автоматически обновляемые страницы, поскольку большинство веб-браузеров не позволяют пользователю отключать или контролировать частоту обновления.
Другой способ сделать это с локальными файлами — сделать это
<script type="text/javascript">
function Redirect(){
window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>
<!-- begin snippet: js hide: false console: true babel: false -->
<script type="text/javascript">
function Redirect(){
window.location.href = ("https://example.com");
}
document.write("Please wait you will be redirected in 10sec");
setTimeout('Redirect(), 10000);
</script>