Как перенаправить на другую веб-страницу?

Как я могу перенаправить пользователя с одной страницы на другую, используя jQuery или чистый JavaScript?

2.02.2009 12:54:16
Я продолжаю видеть оба window.location = url; и window.location.href = url; Насколько они разные? Они? Кстати, я не знал о window.location.replace (url). Ницца.
David M. Miller 7.06.2012 14:24:45
window.locationтакой же, как window.location.href, с точки зрения поведения. window.locationвозвращает объект. Если .hrefне установлено, по window.locationумолчанию изменяется параметр .href. Вывод: использовать любой из них хорошо.
Raptor 7.08.2012 07:03:58
var url = "название сайта" $ (location) .attr ('href', url);
Mad Scientist 18.02.2013 11:30:19
@MadScientist Это обратный способ сделать это. Объект location не является элементом HTML, и использование объекта jquery для его установки кажется неправильным. Зачем вам использовать это, когда прямой код JS так прост?
Juan Mendes 26.11.2013 20:25:46
Почему вы хотите перенаправить? Форма входа не должна быть представлена? И даже если на целевой странице нет логики, вы все равно сможете отправить форму на другую страницу.
Dimt 16.02.2014 14:45:44
30 ОТВЕТОВ
РЕШЕНИЕ

Один не просто перенаправить с помощью jQuery

JQuery не является необходимым, и window.location.replace(...)лучше всего будет имитировать перенаправление HTTP.

window.location.replace(...)это лучше, чем использовать window.location.href, потому replace()что не сохраняет исходную страницу в истории сеанса, а это означает, что пользователь не застрянет в бесконечном фиаско кнопки назад.

Если вы хотите смоделировать кого-то, нажимающего на ссылку, используйте location.href

Если вы хотите имитировать перенаправление HTTP, используйте location.replace

Например:

// similar behavior as an HTTP redirect
window.location.replace("http://stackoverflow.com");

// similar behavior as clicking on a link
window.location.href = "http://stackoverflow.com";
14713
19.05.2019 13:36:05
в случае кнопки отправки добавить возврат false; также внутри вашей функции
Abhi 19.04.2012 11:52:02
Вопрос касается конкретно javascript, но, возможно, стоит отметить, что мета-обновление можно использовать в качестве возврата при сбое в случае, если у пользователя отключен javascript
Hoppe 24.01.2013 00:51:34
@ NicolòMartini If (IE) document.write ("");
Jeff Noel 7.06.2013 13:28:29
Если вы уже используете JQuery, просто используйте $(location).attr('href',url);. window.location.hrefВ некоторых браузерах поведение выглядит непостоянным, фактически, в моей версии Firefox это не работает. Я слышал, что настройки window.locationне работают напрямую в версиях IE.
Noz 28.01.2015 22:34:13
«лучше» следует убрать. Как будет указано далее в ответе, лучшее решение - ситуативное. OP не спрашивает, «как я могу эмулировать перенаправление HTTP с Javascript ...»
MadMaardigan 23.03.2017 15:35:45

Было бы полезно, если бы вы были немного более информативны в том, что вы пытаетесь сделать. Если вы пытаетесь сгенерировать постраничные данные, есть несколько способов сделать это. Вы можете создавать отдельные ссылки для каждой страницы, к которой вы хотите иметь доступ напрямую.

<a href='/path-to-page?page=1' class='pager-link'>1</a>
<a href='/path-to-page?page=2' class='pager-link'>2</a>
<span class='pager-link current-page'>3</a>
...

Обратите внимание, что текущая страница в примере обрабатывается по-разному в коде и с помощью CSS.

Если вы хотите, чтобы постраничные данные изменялись с помощью AJAX, это то место, куда должен прийти jQuery. Что бы вы сделали, это добавили обработчик кликов к каждому из тегов привязки, соответствующих другой странице. Этот обработчик кликов будет вызывать некоторый код jQuery, который идет и извлекает следующую страницу через AJAX и обновляет таблицу новыми данными. В приведенном ниже примере предполагается, что у вас есть веб-служба, которая возвращает данные новой страницы.

$(document).ready( function() {
    $('a.pager-link').click( function() {
        var page = $(this).attr('href').split(/\?/)[1];
        $.ajax({
            type: 'POST',
            url: '/path-to-service',
            data: page,
            success: function(content) {
               $('#myTable').html(content);  // replace
            }
        });
        return false; // to stop link
    });
});
298
2.02.2009 13:18:06
var url = 'asdf.html';
window.location.href = url;
165
1.05.2012 20:35:48

ВНИМАНИЕ: Этот ответ был предоставлен только в качестве возможного решения; это, очевидно, не лучшее решение, так как требует jQuery. Вместо этого, предпочтите чистое решение JavaScript.

$(location).attr('href', 'http://stackoverflow.com')
1677
19.05.2019 13:36:13
Это тот буквальный ответ на вопрос. Если вы уже используете Jquery и, следовательно, уже загрузили его, он будет более эффективным с точки зрения пропускной способности и, конечно, более понятным будет использовать ярлык
barrymac 12.01.2012 12:00:40
Что еще более важно, есть ли способ сделать это с помощью jQuery, который был поднят? Это просто оболочка для window.location.href = url; Но если в jQuery есть какая-то функция, то если window.location.href = url; не будет работать в текущей среде (браузер, ОС и т. д.), может ли ядро ​​jQuery это компенсировать?
Chris 29.02.2012 16:03:25
Внедрение jQuery в уравнение таким образом просто смешно и бессмысленно, тем более что window.locationоно не является элементом и поэтому не имеет атрибутов.
Tim Down 3.10.2012 10:32:36
Я почему-то сомневаюсь, что это все еще работает с последними версиями jQuery, где .attr()фактически устанавливаются атрибуты (то есть .setAttribute())
ThiefMaster 3.07.2013 11:23:52
@deltaray Это не другой способ перенаправления, как сказано выше, это бессмысленная оболочка вокруг объекта местоположения, который даже не является элементом! Это напоминает мне о i.stack.imgur.com/ssRUr.gif
JCM 23.01.2014 15:48:46

Это работает для каждого браузера:

window.location.href = 'your_url';
329
4.12.2014 20:30:50
Вы также document.location.replace(redirectURL)можете сделать это, если не хотите, чтобы первая страница была в истории браузера
jazzcat 12.06.2018 14:06:41

Это работает с JQuery:

$(window).attr("location", "http://google.fr");
144
30.10.2016 16:11:26
То, что это работает, не означает, что вы должны это делать. Это бессмысленная косвенность вокруг настройкиwindow.location
1j01 25.07.2019 21:04:54

Вы можете сделать это без jQuery как:

window.location = "http://yourdomain.com";

И если вы хотите только jQuery, вы можете сделать это следующим образом:

$jq(window).attr("location","http://yourdomain.com");
145
29.11.2014 06:13:56
JQuery, пожалуй, лучшая идея, поскольку она может абстрагироваться от будущих изменений / устаревших
Epirocks 24.06.2015 23:14:27
@Epirocks Если бы в jQuery был разработан API, это могло бы быть веской причиной (хотя сомнительно, что этот API когда-либо изменится), но в данном примере мы просто неправильно используем функцию jQuery, где вы можете обернуть не-DOM объекты и некоторые методы все еще будут работать.
1j01 26.07.2019 03:04:36
Тот факт, что «некоторые методы все еще будут работать» - это именно то, что я имею в виду, абстрагируясь. Да, вы можете сделать это без JQuery, но вы можете сделать что-нибудь без JQuery, это не главное.
Epirocks 31.08.2019 23:15:11

Стандартный «ванильный» способ JavaScript для перенаправления страницы

window.location.href = 'newPage.html';

Или проще: (так windowкак Global)

location.href = 'newPage.html';

Если вы находитесь здесь, потому что теряете HTTP_REFERER при перенаправлении, продолжайте читать:

(В противном случае игнорируйте эту последнюю часть)


Следующий раздел предназначен для тех, кто использует в HTTP_REFERERкачестве одной из многих мер безопасности (хотя это не очень хорошая защитная мера). Если вы используете Internet Explorer 8 или ниже, эти переменные теряются при использовании любой формы перенаправления страниц JavaScript (location.href и т. Д.).

Ниже мы собираемся реализовать альтернативу для IE8 и ниже, чтобы мы не теряли HTTP_REFERER. В противном случае, вы можете почти всегда просто использовать window.location.href.

Сравнение HTTP_REFERER(вставка URL-адреса, сеанс и т. Д.) Может помочь определить, является ли запрос законным. ( Примечание: есть также способы обойти / подделать этих рефереров, как отмечено ссылкой droop в комментариях)


Простое решение для кросс-браузерного тестирования (возврат к window.location.href для Internet Explorer 9+ и всех других браузеров)

Применение: redirect('anotherpage.aspx');

function redirect (url) {
    var ua        = navigator.userAgent.toLowerCase(),
        isIE      = ua.indexOf('msie') !== -1,
        version   = parseInt(ua.substr(4, 2), 10);

    // Internet Explorer 8 and lower
    if (isIE && version < 9) {
        var link = document.createElement('a');
        link.href = url;
        document.body.appendChild(link);
        link.click();
    }

    // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
    else { 
        window.location.href = url; 
    }
}
666
1.04.2020 11:27:55
Заметка для ног: проверка реферера в качестве меры безопасности является паршивым решением. duckduckgo.com/?q=referrer+spoofing
droope 29.01.2013 23:41:11
Если у вас есть идентификатор сеанса HTTP GET в URL-адресе реферера, его можно использовать для проверки соответствия сеанса на действительность.
Andrew Fox 21.08.2015 04:31:05
@mcpDESIGNS вы уверены, что пытались использовать location.assign? Я использую в своем приложении с IE8, и я не теряю HTTP_REFERERзаголовок.
Buzinas 30.09.2015 18:35:27
По крайней мере, в 2012 году он не работал, возможно, более поздние исправления IE8 это исправили - хотя это приятно слышать!
Mark Pieszak - Trilon.io 26.02.2018 00:41:47
Ваше упоминание HTTP_REFERER помогло мне понять проблему, возникающую у меня с window.open, и я нашел решение здесь: stackoverflow.com/questions/7580613/… . Кстати у меня проблема в IE11!
Dov Miller 9.01.2019 10:09:54

Но если кто-то хочет перенаправить обратно на домашнюю страницу, он может использовать следующий фрагмент.

window.location = window.location.host

Было бы полезно, если у вас есть три различных среды: разработка, подготовка и производство.

Вы можете исследовать этот объект window или window.location, просто поместив эти слова в консоль Chrome или консоль Firebug .

228
21.01.2017 20:07:34
window.location.replace (window.location.protocol + "//" + window.location.host)
moala 17.01.2014 00:21:28
еще проще: window.location = '/'
Iftah 21.06.2014 23:56:02

На вашей функции клика, просто добавьте:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
74
26.10.2014 10:44:31

Я также думаю, что location.replace(URL)это лучший способ, но если вы хотите уведомить поисковые системы о вашем перенаправлении (они не анализируют код JavaScript, чтобы увидеть перенаправление), вы должны добавить rel="canonical"метатег на свой веб-сайт.

Добавление раздела noscript с метатегом обновления HTML в нем также является хорошим решением. Я предлагаю вам использовать этот инструмент перенаправления JavaScript для создания перенаправлений. Он также имеет поддержку Internet Explorer для передачи HTTP-реферера.

Пример кода без задержки выглядит так:

<!-- Place this snippet right after opening the head tag to make it work properly -->

<!-- This code is licensed under GNU GPL v3 -->
<!-- You are allowed to freely copy, distribute and use this code, but removing author credit is strictly prohibited -->
<!-- Generated by http://insider.zone/tools/client-side-url-redirect-generator/ -->

<!-- REDIRECTING STARTS -->
<link rel="canonical" href="https://yourdomain.com/"/>
<noscript>
    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">
</noscript>
<!--[if lt IE 9]><script type="text/javascript">var IE_fix=true;</script><![endif]-->
<script type="text/javascript">
    var url = "https://yourdomain.com/";
    if(typeof IE_fix != "undefined") // IE8 and lower fix to pass the http referer
    {
        document.write("redirecting..."); // Don't remove this line or appendChild() will fail because it is called before document.onload to make the redirect as fast as possible. Nobody will see this text, it is only a tech fix.
        var referLink = document.createElement("a");
        referLink.href = url;
        document.body.appendChild(referLink);
        referLink.click();
    }
    else { window.location.replace(url); } // All other browsers
</script>
<!-- Credit goes to http://insider.zone/ -->
<!-- REDIRECTING ENDS -->
252
18.01.2018 15:42:18

Сначала пиши правильно. Вы хотите перейти в приложении для другой ссылки из вашего приложения для другой ссылки. Вот код:

window.location.href = "http://www.google.com";

И если вы хотите перемещаться по страницам в вашем приложении, то у меня также есть код, если хотите.

52
3.04.2014 21:20:11

Напишите приведенный ниже код после раздела PHP, HTML или jQuery. Если вы находитесь в середине раздела PHP или HTML, используйте тег <script>.

location.href = "http://google.com"
35
3.04.2014 21:21:54

В JavaScript и jQuery мы можем использовать следующий код для перенаправления одной страницы на другую:

window.location.href="http://google.com";
window.location.replace("page1.html");
45
3.04.2014 21:22:34

JQuery не нужен. Ты можешь сделать это:

window.open("URL","_self","","")

Это так просто!

Лучший способ инициировать HTTP-запрос - с document.loacation.href.replace('URL').

57
3.04.2014 21:23:23

Итак, вопрос в том, как сделать страницу перенаправления, а не как перенаправить на сайт?

Вам нужно только использовать JavaScript для этого. Вот небольшой код, который создаст страницу динамического перенаправления.

<script>
    var url = window.location.search.split('url=')[1]; // Get the URL after ?url=
    if( url ) window.location.replace(url);
</script>

Допустим, вы просто поместили этот фрагмент в redirect/index.htmlфайл на своем веб-сайте и можете использовать его следующим образом.

http://www.mywebsite.com/redirect?url=http://stackoverflow.com

И если вы перейдете по этой ссылке, она автоматически перенаправит вас на stackoverflow.com .

Ссылка на документацию

И вот как вы делаете простую страницу перенаправления с помощью JavaScript

Редактировать:

Также есть одна вещь, на которую стоит обратить внимание. Я добавил window.location.replaceв свой код, потому что я думаю, что он подходит для страницы перенаправления, но вы должны знать, что при использовании window.location.replaceи вы будете перенаправлены, когда вы нажимаете кнопку «Назад» в браузере, он не вернется на страницу перенаправления, и он будет вернитесь на страницу перед этим, посмотрите на эту маленькую демонстрационную вещь.

Пример:

Процесс: магазин дома => перенаправить страницу в Google => Google

Когда на Google: Google => кнопку назад в браузере => магазин дома

Так что, если это соответствует вашим потребностям, то все должно быть хорошо. Если вы хотите включить страницу перенаправления в историю браузера, замените эту

if( url ) window.location.replace(url);

с

if( url ) window.location.href = url;
79
26.10.2014 10:55:01

Попробуй это:

location.assign("http://www.google.com");

Пример кода .

62
2.01.2016 04:29:32

Вот перенаправление с задержкой. Вы можете установить время задержки на то, что вы хотите:

<!doctype html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Your Document Title</title>
    <script type="text/javascript">
        function delayer(delay) {
            onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
        }
    </script>
</head>

<body>
    <script>
        delayer(8000)
    </script>
    <div>You will be redirected in 8 seconds!</div>
</body>

</html>
41
23.02.2016 06:26:07
лучше сделать это: setTimeout (function () {window.location.href = " google.com "}, задержка);
dikkini 4.04.2014 21:33:51

Вы можете использовать его, как показано в следующем коде, где getRequestToForwardPageотображается сопоставление запроса ( URL ). Вы также можете использовать свой URL.

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"GuestHouseProcessor?roomType="+$("#roomType").val(),
        data: $("#popForm").serialize(),
        dataType: "json",
        error: (function() {
            alert("Server Error");
            $.unblockUI();
    }),
    success: function(map) {
        $("#layer1").hide();
        $.unblockUI();
        window.location = "getRequestToForwardPage";
    }
});

Это для того же контекста приложения.

Если вы хотите использовать только код, специфичный для jquery, может помочь следующий код:

 $(location).attr('href',"http://www.google.com");
 $jq(window).attr("location","http://www.google.com");
 $(location).prop('href',"http://www.google.com"); 
17
28.06.2019 14:12:25

JavaScript предоставляет вам множество методов для извлечения и изменения текущего URL, который отображается в адресной строке браузера. Все эти методы используют объект Location, который является свойством объекта Window. Вы можете создать новый объект Location с текущим URL следующим образом:

var currentLocation = window.location;

Основная структура URL

<protocol>//<hostname>:<port>/<pathname><search><hash>

введите описание изображения здесь

  1. Протокол - указывает имя протокола, которое будет использоваться для доступа к ресурсу в Интернете. (HTTP (без SSL) или HTTPS (с SSL))

  2. hostname - имя хоста указывает хост, которому принадлежит ресурс. Например, www.stackoverflow.com. Сервер предоставляет сервисы, используя имя хоста.

  3. порт - номер порта, используемый для распознавания определенного процесса, которому должно быть переслано интернет-сообщение или другое сетевое сообщение, когда оно поступает на сервер.

  4. путь - путь дает информацию о конкретном ресурсе в хосте, к которому веб-клиент хочет получить доступ. Например, stackoverflow.com/index.html.

  5. запрос - строка запроса следует за компонентом пути и предоставляет строку информации, которую ресурс может использовать для каких-либо целей (например, в качестве параметров для поиска или в качестве данных для обработки).

  6. hash - Якорная часть URL, включает знак хеша (#).

С помощью этих свойств объекта Location вы можете получить доступ ко всем этим компонентам URL

  1. hash - Устанавливает или возвращает часть привязки URL.
  2. host -Устанавливает или возвращает имя хоста и порт URL.
  3. hostname - Устанавливает или возвращает имя хоста URL.
  4. href - устанавливает или возвращает весь URL.
  5. pathname - Устанавливает или возвращает имя пути URL.
  6. port -Set или возвращает номер порта, который сервер использует для URL.
  7. протокол - Устанавливает или возвращает протокол URL.
  8. search -Set или возвращает часть запроса URL

Теперь, если вы хотите изменить страницу или перенаправить пользователя на другую страницу, вы можете использовать hrefсвойство объекта Location следующим образом

Вы можете использовать свойство href объекта Location.

window.location.href = "http://www.stackoverflow.com";

Местоположение объекта также имеет эти три метода

  1. assign () - загружает новый документ.
  2. reload () - перезагружает текущий документ.
  3. replace () - заменяет текущий документ новым

Вы можете использовать метод assign () и replace также для перенаправления на другие страницы, подобные этим

location.assign("http://www.stackoverflow.com");

location.replace("http://www.stackoverflow.com");

Чем отличаются метод assign () и replace () - Разница между методом replace () и методом assign () () состоит в том, что replace () удаляет URL-адрес текущего документа из истории документа, что означает невозможность использования кнопка «назад» для возврата к исходному документу. Поэтому используйте метод assign (), если вы хотите загрузить новый документ, и хотите дать возможность вернуться к исходному документу.

Вы можете изменить свойство href объекта location с помощью jQuery, например, так:

$(location).attr('href',url);

И, следовательно, вы можете перенаправить пользователя на другой URL-адрес.

213
24.10.2017 09:52:54

Вам нужно вставить эту строку в ваш код:

$(location).attr("href","http://stackoverflow.com");

Если у вас нет jQuery, используйте JavaScript:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
80
28.03.2019 05:20:33

Есть много способов сделать это.

// window.location
window.location.replace('http://www.example.com')
window.location.assign('http://www.example.com')
window.location.href = 'http://www.example.com'
document.location.href = '/path'

// window.history
window.history.back()
window.history.go(-1)

// window.navigate; ONLY for old versions of Internet Explorer
window.navigate('top.jsp')


// Probably no bueno
self.location = 'http://www.example.com';
top.location = 'http://www.example.com';

// jQuery
$(location).attr('href','http://www.example.com')
$(window).attr('location','http://www.example.com')
$(location).prop('href', 'http://www.example.com')
427
16.01.2019 10:28:35
window.navigateтолько для старых IE (Firefox / Chrome не поддерживают это). Если вы хотите перечислить все варианты, не забудьте о document.location.
Rob W 26.11.2014 18:19:10
document.location = document.referrer; Пожалуйста, добавьте это в список также. Это работает не так, как History.back, скорее заставляет страницу Обновить снова.
Ali Humayun 30.07.2015 20:22:46
.attr () не будет работать на jQuery 3.0.0. используйте вместо него .val ().
Rivalus 19.06.2016 20:41:21
@ LéoLam Вот почему существует поисковая система под названием Google. :-) Вы можете искать каждого из них в Google и найти разницу. Вы не хотите выбирать случайно.
I am the Most Stupid Person 18.09.2017 10:43:02
Вы также можете увидеть документы, developer.mozilla.org/en-US/docs/Web/API/Location
John Balvin Arias 25.05.2018 10:12:24
<script type="text/javascript">
var url = "https://yourdomain.com";

// IE8 and lower fix
if (navigator.userAgent.match(/MSIE\s(?!9.0)/))
{
    var referLink = document.createElement("a");
    referLink.href = url;
    document.body.appendChild(referLink);
    referLink.click();
}

// All other browsers
else { window.location.replace(url); }
</script>
17
29.01.2014 10:20:32

# Перенаправление страницы HTML с использованием jQuery / JavaScript

Попробуйте этот пример кода:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Если вы хотите дать полный URL как window.location = "www.google.co.in";.

89
31.08.2016 12:08:08
"Использование jQuery" неточно. И пример использования полного URL не будет работать, так как это не полный URL. Там нет протокола, поэтому он будет интерпретироваться как относительный URL.
1j01 31.10.2017 21:18:27

Вот как я это использую.

   window.location.replace('yourPage.aspx');   
   // If you're on root and redirection page is also on the root

   window.location.replace(window.location.host + '/subDirectory/yourPage.aspx');

   // If you're in sub directory and redirection page is also in some other sub directory.
5
7.02.2014 20:16:40
@ Если вы когда-либо сталкивались с подкаталогами в своем приложении, предположим, что если вы заходите на url.com/admin/login.aspx и хотите перейти по адресу url.com/customer/orders.aspx, то window.location.host даст вам URL. com, тогда вы можете добавить свой подкаталог и страницу
dnxit 11.02.2014 07:05:13

Должно быть просто в состоянии установить использование window.location.

Пример:

window.location = "https://stackoverflow.com/";

Вот предыдущий пост на эту тему: Как мне перенаправить на другую веб-страницу?

194
19.05.2019 13:36:47

Есть три основных способа сделать это,

window.location.href='blaah.com';
window.location.assign('blaah.com');

а также...

window.location.replace('blaah.com');

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

РЕДАКТИРОВАТЬ: windowпрефикс не является обязательным.

38
19.01.2015 00:58:45

Прежде чем я начну, jQuery - это библиотека JavaScript, используемая для манипулирования DOM. Таким образом, вы не должны использовать jQuery для перенаправления страницы.

Цитата из Jquery.com:

Хотя jQuery может работать без серьезных проблем в старых версиях браузера, мы не проводим в них активное тестирование jQuery и обычно не исправляем ошибки, которые могут в них появляться.

Это было найдено здесь: https://jquery.com/browser-support/

Таким образом, jQuery не является универсальным решением для обратной совместимости.

Следующее решение, использующее сырой JavaScript, работает во всех браузерах и долгое время было стандартным, поэтому вам не нужны никакие библиотеки для кросс-браузерной поддержки.

Эта страница будет перенаправлена ​​в Google через 3000 миллисекунд

<!DOCTYPE html>
<html>
    <head>
        <title>example</title>
    </head>
    <body>
        <p>You will be redirected to google shortly.</p>
        <script>
            setTimeout(function(){
                window.location.href="http://www.google.com"; // The URL that will be redirected too.
            }, 3000); // The bigger the number the longer the delay.
        </script>
    </body>
</html>

Различные варианты заключаются в следующем:

window.location.href="url"; // Simulates normal navigation to a new page
window.location.replace("url"); // Removes current URL from history and replaces it with a new URL
window.location.assign("url"); // Adds new URL to the history stack and redirects to the new URL

window.history.back(); // Simulates a back button click
window.history.go(-1); // Simulates a back button click
window.history.back(-1); // Simulates a back button click
window.navigate("page.html"); // Same as window.location="url"

При использовании замены кнопка «Назад» не вернется на страницу перенаправления, как если бы она никогда не была в истории. Если вы хотите, чтобы пользователь мог вернуться на страницу перенаправления, используйте window.location.hrefили window.location.assign. Если вы используете опцию, которая позволяет пользователю вернуться на страницу перенаправления, помните, что при входе на страницу перенаправления вы будете перенаправлены обратно. Поэтому учитывайте это при выборе опции для вашего перенаправления. В условиях, когда страница перенаправляется только тогда, когда пользователь выполняет действие, тогда наличие страницы в истории кнопки возврата будет в порядке. Но если страница автоматически перенаправляет, вы должны использовать замену, чтобы пользователь мог использовать кнопку возврата, не возвращаясь к странице, которую перенаправляет.

Вы также можете использовать метаданные для запуска перенаправления страницы следующим образом.

МЕТА Обновить

<meta http-equiv="refresh" content="0;url=http://evil.com/" />

META Расположение

<meta http-equiv="location" content="URL=http://evil.com" />

BASE Hijacking

<base href="http://evil.com/" />

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

https://code.google.com/p/html5security/wiki/RedirectionMethods

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

Следующий абзац является гипотетическим:

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

Ознакомьтесь с рекомендациями Google для веб-мастеров по перенаправлениям: https://support.google.com/webmasters/answer/2721217?hl=ru&ref_topic=6001971.

Вот забавная маленькая страница, которая вышибает вас из этой страницы.

<!DOCTYPE html>
<html>
    <head>
        <title>Go Away</title>
    </head>
    <body>
        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>
    </body>
</html>

Если вы объедините два примера страницы вместе, у вас получится младенческая петля перенаправления, которая гарантирует, что ваш пользователь никогда больше не захочет использовать ваш сайт.

169
19.05.2019 13:38:37
Я отвечаю на его запрос о jQuery, говоря, что он не нужен. JQuery имеет множество полезных ярлыков для JavaScript, но нет необходимости в ярлыках для перенаправлений. JQuery это просто JavaScript. Ничего больше. Обычный способ вызова перенаправления будет работать с его функциями, используя jQuery.
Patrick W. McMahon 27.06.2015 12:16:27

Вы можете перенаправить в jQuery следующим образом:

$(location).attr('href', 'http://yourPage.com/');
52
3.07.2016 05:01:56

Вот код для перенаправления на другую страницу с тайм-аутом в 10 секунд.

<script>
    function Redirect()
    {
        window.location="http://www.adarshkr.com";
    }

    document.write("You will be redirected to a new page in 10 seconds.");
    setTimeout('Redirect()', 10000);
</script>

Вы также можете сделать это, нажав на кнопку, используя location.assign:

<input type="button" value="Load new document" onclick="newPage()">
<script>
    function newPage() {
        window.location.assign("http://www.adarshkr.com")
    }
</script>
15
29.11.2014 06:23:18
не используйте встроенные события клика. Плохая практика и не будет поддерживаться в будущих итерациях всех веб-браузеров.
Patrick W. McMahon 18.12.2014 16:54:29