Каков наилучший способ автоматического перенаправления кого-либо на другую веб-страницу?

StackOverflow https://stackoverflow.com/questions/200337

  •  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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top