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

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


person venkatachalam    schedule 02.02.2009    source источник


Ответы (55)


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

jQuery не требуется, и window.location.replace(...) < / a> лучше всего имитирует перенаправление 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";
person Ryan McGeary    schedule 03.02.2009
comment
Примечание. Поведение, аналогичное перенаправлению HTTP для replace(), означает, что он не будет создавать запись в истории вашего браузера. - person png; 06.10.2020
comment
Если вы отображаете страницу только для перенаправления, location.replace(), вероятно, будет более подходящим (исключите страницу с перенаправлением из истории). Но почему бы вам в первую очередь не сделать перенаправление на стороне сервера? - person x-yuri; 12.03.2021

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

$(location).attr('href', 'http://stackoverflow.com')
person Boris Guéry    schedule 28.10.2009

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

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

Или проще: (поскольку window является глобальным)

location.href = 'newPage.html';

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

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


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

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

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


Простое решение для кросс-браузерного тестирования (возврат к 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; 
    }
}
person Mark Pieszak - Trilon.io    schedule 27.07.2012

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

// 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')
person Govind Singh    schedule 28.01.2014

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

window.location.href = 'your_url';
person Fred    schedule 22.10.2010

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

<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
    });
});
person tvanfosson    schedule 02.02.2009

Я также считаю, что 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 -->
person Patartics Milán    schedule 25.04.2013

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

window.location = window.location.host

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

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

person Nadeem Yasin    schedule 30.10.2012

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. pathname - путь дает информацию о конкретном ресурсе на хосте, к которому веб-клиент хочет получить доступ. Например, stackoverflow.com/index.html.

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

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

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

  1. hash - устанавливает или возвращает часть привязки URL-адреса.
  2. host - задает или возвращает имя хоста и порт URL-адреса.
  3. hostname - задает или возвращает имя хоста URL-адреса.
  4. href - устанавливает или возвращает весь URL.
  5. pathname - задает или возвращает полное имя URL-адреса.
  6. порт - устанавливает или возвращает номер порта, который сервер использует для URL-адреса.
  7. протокол - устанавливает или возвращает протокол URL-адреса.
  8. search - задает или возвращает часть запроса 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 объекта местоположения с помощью jQuery, также как это

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

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

person Nikhil Agrawal    schedule 23.12.2013

По сути, jQuery - это просто структура JavaScript, и для выполнения некоторых вещей, таких как перенаправление в этом случае, вы можете просто использовать чистый JavaScript, поэтому в В этом случае у вас есть 3 варианта использования ванильного JavaScript:

1) Использование местоположения заменить, это заменит текущую историю страницы, это означает, что невозможно использовать кнопку назад для возврата к исходной странице.

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

2) Используя местоположение assign, вы сохраните историю, а с помощью кнопки «Назад» вы сможете вернуться на исходную страницу:

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

3) Я рекомендую использовать один из этих предыдущих способов, но это может быть третий вариант с использованием чистого JavaScript:

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

Вы также можете написать функцию в jQuery для ее обработки, но это не рекомендуется, так как это только одна строка чистой функции JavaScript, также вы можете использовать все вышеперечисленные функции без окна, если вы уже находитесь в области окна, например window.location.replace("http://stackoverflow.com"); может быть location.replace("http://stackoverflow.com");

Также я показываю их все на изображении ниже:

location.replace location.assign

person Alireza    schedule 26.02.2017

Должен просто быть установлен с помощью window.location.

Пример:

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

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

person Newse    schedule 16.02.2014

Прежде чем я начну, 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 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>

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

person Patrick W. McMahon    schedule 27.08.2014

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

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

И если вам нужен только jQuery, вы можете сделать это так:

$jq(window).attr("location","http://yourdomain.com");
person ScoRpion    schedule 23.05.2012

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

$(window).attr("location", "http://google.fr");
person xloadx    schedule 05.09.2011

# Перенаправление 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";.

person Sakthi Karthik    schedule 06.02.2014

Исходный вопрос: «Как перенаправить с помощью jQuery?», поэтому ответ реализует jQuery >> Бесплатный вариант использования.


Чтобы просто перенаправить на страницу с JavaScript:

window.location.href = "/contact/";

Или, если вам нужна задержка:

setTimeout(function () {
  window.location.href = "/contact/";
}, 2000);   // Time in milliseconds

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

$('a,img').on('click',function(e){
  e.preventDefault();
  $(this).animate({
    opacity: 0 //Put some CSS animation here
  }, 500);
  setTimeout(function(){
    // OK, finished jQuery staff, let's go redirect
    window.location.href = "/contact/";
  },500);
});

Представьте, что кто-то написал сценарий / плагин с 10000 строк кода. С помощью jQuery вы можете подключиться к этому коду, используя всего пару строк.

person SergeDirect    schedule 26.12.2014

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

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

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

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
person Ashish Ratan    schedule 27.01.2014

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

Для этого вам нужно использовать только 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;
person iConnor    schedule 30.08.2013

В функции щелчка просто добавьте:

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
person Swaprks    schedule 14.11.2012

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

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

Пример кода.

person tilak    schedule 19.11.2013

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

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

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

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

person MayorMonty    schedule 11.07.2013

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

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

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

person Anup    schedule 06.06.2013

Вы можете перенаправить в jQuery так:

$(location).attr('href', 'http://yourPage.com/');
person Azam Alvi    schedule 05.09.2014

Используя JavaScript:

Способ 1:

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

Способ 2:

window.location.replace("http://google.com");

Используя jQuery:

Метод 1: $ (местоположение)

$(location).attr('href', 'http://google.com');

Метод 2: функция многократного использования

jQuery.fn.redirectTo = function(url){
    window.location.href = url;
}

jQuery(window).redirectTo("http://google.com");
person Kalpesh Panchal    schedule 23.02.2017

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

window.location.href="http://google.com";
window.location.replace("page1.html");
person Community    schedule 01.07.2013

ECMAScript 6 + jQuery, 85 байт

$({jQueryCode:(url)=>location.replace(url)}).attr("jQueryCode")("http://example.com")

Пожалуйста, не убивайте меня, это шутка. Это шутка. Это шутка.

Это действительно «дало ответ на вопрос» в том смысле, что требовало решения «с использованием jQuery», что в данном случае влечет за собой включение его в уравнение каким-то образом.

Феррибиг, очевидно, нуждается в объяснении шутки (все еще шучу, я уверен, что в форме обзора есть ограниченные варианты), поэтому без лишних слов:

В других ответах используется jQuery attr() на объектах location или window без необходимости.

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

Функция называется jQueryCode, хотя в ней нет ничего jQuery, а вызов функции somethingCode просто ужасен, особенно когда что-то даже не является языком.

«85 байт» - это ссылка на Code Golf. Очевидно, что гольф - это не то, чем вы должны заниматься за пределами кодового гольфа, и, кроме того, этот ответ явно не относится к гольфу.

В основном передергиваю.

person 1j01    schedule 13.04.2016

Javascript:

window.location.href='www.your_url.com';
window.top.location.href='www.your_url.com';
window.location.replace('www.your_url.com');

JQuery:

var url='www.your_url.com';
$(location).attr('href',url);
$(location).prop('href',url);//instead of location you can use window
person lalithkumar    schedule 22.05.2015

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

<!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>
person Stefan Gruenwald    schedule 29.11.2013

Это можно сделать тремя основными способами:

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

а также...

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

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

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

person Ben    schedule 07.07.2014

Мне просто пришлось обновить эту нелепость еще одним более новым методом jQuery:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
person Epiphany    schedule 28.02.2015

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

location.href = "http://google.com"
person Bidyut    schedule 10.06.2013

Код jQuery для перенаправления страницы или URL

Первый способ

Вот код jQuery для перенаправления страницы. Поскольку я поместил этот код в функцию $ (document) .ready (), он будет выполняться, как только страница будет загружена.

var url = "http://stackoverflow.com";
$(location).attr('href',url);

Вы даже можете передать URL-адрес непосредственно в метод attr () вместо использования переменной.

Второй путь

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

Вы также можете кодировать так (оба они одинаковы внутри):

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

Если вам интересно узнать о разнице между window.location и window.location.href, то вы можете увидеть, что последний устанавливает свойство href явно, а первый - неявно. Поскольку window.location возвращает объект, который по умолчанию устанавливает свое свойство .href.

Третий путь

Есть еще один способ перенаправить страницу с помощью JavaScript - метод replace() объекта window.location. Вы можете передать новый URL-адрес методу replace(), и он будет имитировать перенаправление HTTP. Кстати, помните, что метод window.location.replace() не помещает исходную страницу в историю сеанса, что может повлиять на поведение кнопки возврата. Иногда это то, что вы хотите, поэтому используйте это осторожно.

// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");

Четвертый путь

как метод attr () (после введения jQuery 1.6)

var url = "http://stackoverflow.com";
$(location).prop('href', url);

person Divyesh Kanzariya    schedule 03.03.2016

JavaScript очень обширен. Если вы хотите перейти на другую страницу, у вас есть три варианта.

 window.location.href='otherpage.com';
 window.location.assign('otherpage.com');
 //and...

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

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

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

window.location.href; returns the href (URL) of the current page
window.location.hostname; returns the domain name of the web host
window.location.pathname; returns the path and filename of the current page
window.location.protocol; returns the web protocol used (http: or https:)
window.location.assign; loads a new document
window.location.replace; Replace the current location with new one.
person Mustkeem K    schedule 30.03.2018

В jQuery используйте $(location).attr('href', url):

$(document).ready(function(){
    var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
    $(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

В необработанном JavaScript есть несколько способов добиться этого:

window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";

- явно устанавливает свойство href.

window.location = "http://www.GameOfThrones.com";

- делает это неявно, поскольку window.location возвращает объект, который по умолчанию устанавливает свое свойство .href.

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

- заменяет текущее окно на новое.

self.location = "http://www.somewebsite.com";

- устанавливает расположение самого текущего окна.

Вот пример перенаправления JavaScript через определенное время (3 секунды):

<script>
    setTimeout(function() {
        window.location.href = "https://www.youtube.com/";
    }, 3000);
</script>

person Inconnu    schedule 13.12.2016

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

window.location.href="http://google.com";
window.location.replace("page1.html");

Но вы можете сделать в jQuery функцию для перенаправления страницы:

jQuery.fn.redirect=function(url)
{
    window.location.href=url;
}

И вызовите эту функцию:

jQuery(window).redirect("http://stackoverflow.com/")
person Muhammad Waqas    schedule 04.12.2015
comment
Почему вы передаете window функции jQuery в этой строке: jQuery(window).redirect(...)? - person A1rPun; 04.12.2015
comment
@ A1rPun, что мне нужно для передачи оконного документа? - person Muhammad Waqas; 05.12.2015
comment
Это не имеет смысла как нечто, что должно быть методом jQuery. Нет разницы между $("div").redirect(url) и $().redirect(url). Вы можете сделать его статическим методом, например $.redirect(url), но в этом нет особой необходимости. jQuery вообще не нужен. - person 1j01; 10.07.2016

Используйте функцию jQuery:

$.extend({
  redirectPost: function(location, args) {
    var form = '';
    $.each(args, function(key, value) {
      form += '<input type="hidden" name="' + key + '" value="' + value + '">';
    });
    $('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
  }
});

В своем коде вы используете это так:

$.redirectPost("addPhotos.php", {pimreference:  $("#pimreference").val(), tag: $("#tag").val()});
person stratum    schedule 11.09.2014

Просто в JavaScript вы можете перенаправить на определенную страницу, используя следующее:

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

Or

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

Or

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

Использование jQuery:

$(window).attr("location","http://www.test.com");
person vipul sorathiya    schedule 16.06.2015

Вы можете использовать его, как в следующем коде, где 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"); 
person Vinay Sharma    schedule 10.12.2013

Использование location.replace() перенаправит вас, но без сохранения истории предыдущей страницы. Это лучше использовать при отправке формы.

Но если вы хотите сохранить свою историю, вы должны использовать location.href=//path.

Примеры:

// Form with steps
document.getElementById('#next').onclick = function() {
   window.location.href='/step2' // Iteration of steps;
}

// Go to next step
document.getElementById('#back').onclick = function() {
   window.history.back();
}

// Finish
document.getElementById('#finish').onclick = function() {
   window.location.href = '/success';
}

// On success page
window.onload = function() {
    setTimeout(function() {
       window.location.replace('/home'); // I can't go back to success page by pressing the back button
    },3000);
}
person Andrei Todorut    schedule 22.12.2017

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

function onclick() {
    location.href = '@Url.Action("Index", "Home")';
}
person wild coder    schedule 14.02.2018

Вот код для перенаправления на другую страницу с таймаутом 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>
person Adarsh Gowda K R    schedule 08.09.2014
comment
не используйте встроенные события щелчка. Плохая практика и не будет поддерживаться в будущих версиях всех веб-браузеров. - person Patrick W. McMahon; 18.12.2014

Это очень легко реализовать. Вы можете использовать:

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

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

Or:

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

Этот метод не запоминает историю предыдущей страницы. В этом случае кнопка «Назад» становится неактивной.

person Abhishek K. Upadhyay    schedule 30.09.2016

Если вы предпочитаете использовать чистый JavaScript, я понял, что использование document.location.href = "https://example.com" или window.location.href = "https://example.com" вызывает проблемы совместимости в Firefox. Вместо этого попробуйте использовать:

location.href = "https://example.com";
location.replace("http://example.com");

В моем случае проблема решена. Удачи!

person Alessandro Foolish Ciak DAnton    schedule 17.02.2018

Вы можете использовать:

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

Метод replace() не сохраняет исходную страницу в истории сеанса, поэтому пользователь не может вернуться с помощью кнопки «Назад» и снова получить перенаправление. ПРИМЕЧАНИЕ. В этом случае кнопка «Назад» в браузере будет отключена.

Однако, если вы хотите получить такой же эффект, как нажатие на ссылку, вам следует пойти на:

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

В этом случае кнопка браузера назад будет активной.

person madhur    schedule 29.08.2016

Использовать:

function redirect(a) {
    location = a
}

И назовите это с помощью: redirect([url]);

Нет необходимости в href после location, как это подразумевается.

person cascading-style    schedule 23.11.2016

Одностраничное приложение в рамках одного маршрута приложения

window.location.pathname = '/stack';

JavaScript:

location.href = "http://stack.com";
window.location = "http://stack.com";

jQuery:

$(location).attr('href', "http://www.stack.com");
$(window).attr('location', "http://www.stack.com");

Угловой 4

import { Router } from '@angular/router';
export class NavtabComponent{
    constructor(private router: Router) {
    }
    this.router.navigate(['bookings/taxi']);
}
person HD..    schedule 28.08.2017

  1. location.assign ():

    Чтобы назначить путь маршрута, передав в него путь ... Назначить предоставит вам историю даже после того, как путь был назначен.

    Метод использования: в него следует передать значение.

    Например: location.assign("http://google.com")

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

  2. location.href

    Можно определить, указать путь к нему ... И он будет перенаправлять на указанный путь после настройки, и он будет хранить историю ...

    Метод использования: ему следует присвоить значение.

    Например: location.href = "http://google.com"

  3. location.replace ():

    Поможет заменить путь, если вы не хотите хранить историю. Он не даст вам истории, если вы замените его путь.

    Метод использования: в него следует передать значение.

    Например: location.replace("http://google.com")

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


assign() и href похожи, и оба могут хранить историю. assign будет работать, передавая значение, а href работает, назначая.

Вы можете добиться этого с помощью самого JavaScript без использования jQuery, назначив,

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

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

$(window).attr('location', "http://www.google.com");
$(location).attr('href', "http://www.google.com");

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

Вот объект Location,

Location API из Chrome

person Mohideen bin Mohammed    schedule 27.06.2017

Я просто добавляю еще один способ:

Чтобы перенаправить любую конкретную страницу / ссылки вашего сайта на другую страницу, просто добавьте эту строку кода:

<script>
    if(window.location.href == 'old_url')
    {
        window.location.href="new_url";
    }

    // Another URL redirect
    if(window.location.href == 'old_url2')
    {
        window.location.href="new_url2";
    }
</script>

Для примера из реальной жизни,

<script>
    if(window.location.href == 'https://old-site.com')
    {
        window.location.href="https://new-site.com";
    }

    // Another URL redirect
    if(window.location.href == 'https://old-site.com/simple-post.html')
    {
        window.location.href="https://new-site.com/simple-post.html";
    }
</script>

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

person Maniruzzaman Akash    schedule 26.05.2017

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

  1. Используя метатег в голове - <meta http-equiv="refresh" content="0;url=http://your-page-url.com" />. Обратите внимание, что _2 _... используется через сколько секунд вам нужно перенаправить страницу.

  2. Используя JavaScript: window.location.href = "http://your-page-url.com";

  3. Используя jQuery: $(location).attr('href', 'http://yourPage.com/');

person SantoshK    schedule 24.10.2016
comment
Нет причин использовать для этого jQuery, и window. не нужен. - person 1j01; 09.03.2017
comment
Где я использовал window. в примере запроса jquery? ... если вы хотите перенаправить страницу через javascript ... чем вам нужно использовать window.location .. - person SantoshK; 10.03.2017
comment
Я имел в виду это как отдельные вещи: вы не должны использовать для этого jQuery, а в примере с JavaScript вы можете упростить window.location.href = до location.href = или даже location =. - person 1j01; 17.03.2017
comment
Да location.href = было бы лучшим вариантом для перенаправления страницы - :) - person SantoshK; 21.03.2017

Я уже использую функцию redirect () JavaScript. Работает.

<script type="text/javascript">
    $(function () {
        //It's similar to HTTP redirect
        window.location.replace("http://www.Technomark.in");

        //It's similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
person user1012506    schedule 16.06.2016
comment
в чем разница между этим ответом и первым? - person Mimouni; 17.06.2016

Если вы хотите перенаправить на маршрут в том же приложении, просто

window.location.pathname = '/examplepath'

будет путь пойти.

person RuNpiXelruN    schedule 19.07.2017

Весь способ сделать редирект со стороны клиента:

<!DOCTYPE html>
<html>
    <head>
        <title>JavaScript and jQuery example to redirect a page or URL </title>
    </head>
    <body>
        <div id="redirect">
            <h2>Redirecting to another page</h2>
        </div>

        <script src="scripts/jquery-1.6.2.min.js"></script>
        <script>
            // JavaScript code to redirect a URL
            window.location.replace("http://stackoverflow.com");
            // window.location.replace('http://code.shouttoday.com');

            // Another way to redirect page using JavaScript

            // window.location.assign('http://code.shouttoday.com');
            // window.location.href = 'http://code.shouttoday.com';
            // document.location.href = '/relativePath';

            //jQuery code to redirect a page or URL
            $(document).ready(function(){
                //var url = "http://code.shouttoday.com";
                //$(location).attr('href',url);
                // $(window).attr('location',url)
                //$(location).prop('href', url)
            });
        </script>
    </body>
</html>

person Zigri2612    schedule 04.03.2016

Перенаправление пользователя с помощью jQuery / JavaScript

Используя объект местоположения в jQuery или JavaScript, мы можем перенаправить пользователя на другую веб-страницу.

В jQuery

Код для перенаправления пользователя с одной страницы на другую:

var url = 'http://www.example.com';
$(location).attr('href', url);

В JavaScript

Код для перенаправления пользователя с одной страницы на другую:

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

Или

var url = 'http://www.example.com';
window.location = url;
person devst3r    schedule 29.09.2014

По моему опыту работы, JavaScript намного лучше перенаправлять.

Это зависит от того, как вы хотите изменить локацию. Если вы хотите регистрировать свой веб-сайт в истории пользователей, используйте window.location.href='ur website';. В противном случае, чтобы сделать это без входа в историю, используйте window.location.replace("your website");.

person omkaartg    schedule 07.12.2017

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

   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.
person dnxit    schedule 07.02.2014
comment
@Phil, вы когда-либо сталкивались с подкаталогами в своем приложении, предположим, если вы находитесь на url.com/admin /login.aspx, вы хотите перейти на url.com/customer/orders.aspx window.location.host предоставит вам url.com, после чего вы сможете добавить свой подкаталог и страницу - person dnxit; 11.02.2014