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

Я никогда не учил JavaScript, но я представляю, что это довольно простая проблема. Просто хотел узнать, какой метод наиболее рекомендуется в наши дни.

Ответы [ 7 ]

92 голосов
/ 14 октября 2008
// 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";

edit : похоже, что пользователь, оставивший лучший ответ, оставил SO, я собрал его ответы здесь.

25 голосов
/ 14 октября 2008

Наиболее рекомендуемый? Чтобы не делать это. HTTP - далеко лучше подходит для работы , чем JavaScript (поисковые системы следуют за ними, вы можете указать, является ли он постоянным или нет, они быстрее и т. Д.).

В противном случае & hellip;

Если вы хотите немедленного перенаправления:

window.location.replace('http://example.com/');

Это заменит текущий URI новым URI в истории браузера, поэтому кнопка «Назад» не приведет к тому, что пользователь попадет на страницу, которая сразу же переместит его вперед.

Если вы действительно не хотите перенаправлять, но хотите отправить пользователя куда-нибудь в ответ на событие:

window.location.href = 'http://example.com/';

Не забудьте иметь запасной вариант без JavaScript. Ссылка обычно является наилучшим вариантом, но она зависит от контекста.

Перенаправление с задержкой - еще худшая идея. Единственная причина их использования - если вы хотите отобразить сообщение пользователю - и пользователи читают вещи с разной скоростью (и заставляют их сидеть на другой вкладке, пока они делают что-то еще). Если сообщение достаточно важно для показа, оно должно быть достаточно важным, чтобы оно оставалось на экране до тех пор, пока пользователь не прочитает его и не щелкнет ссылку на следующую страницу.

5 голосов
/ 14 октября 2008

Одна важная вещь, которую следует помнить при перенаправлении страницы с помощью JavaScript, всегда обеспечивайте перенаправление не-JavaScript! Ссылка будет делать, или лучше тег <META>, например: <meta http-equiv="refresh" content="2;url=http://example.com">

4 голосов
/ 14 октября 2008

В наши дни, я думаю, самый рекомендуемый метод - не делать перенаправления javascript (или meta). Вам это действительно нужно? Не могли бы вы вместо этого использовать HTTP-заголовок перенаправления?

В Руководстве по доступности веб-контента W3C (7.4) также не рекомендуется создавать страницы автоматического обновления, поскольку большинство веб-браузеров не позволяют пользователю отключать или контролировать частоту обновления

0 голосов
/ 11 декабря 2018

Другой способ сделать это с локальными файлами - сделать это

0 голосов
/ 28 декабря 2017

<!-- 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>
0 голосов
/ 28 декабря 2017

<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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...