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

7723

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

Венкатачалам
источник
147
Я продолжаю видеть оба window.location = url; и window.location.href = url; Насколько они разные? Они? Кстати, я не знал о window.location.replace (url). Ницца.
Дэвид М. Миллер
100
window.locationтакой же, как window.location.href, с точки зрения поведения. window.locationвозвращает объект. Если .hrefне установлено, по window.locationумолчанию изменяется параметр .href. Вывод: использовать любой из них хорошо.
Raptor
10
var url = "название сайта" $ (location) .attr ('href', url);
Безумный ученый
31
@MadScientist Это обратный способ сделать это. Объект location не является элементом HTML, и использование объекта jquery для его установки кажется неправильным. Зачем вам использовать это, когда прямой код JS так прост?
Хуан Мендес
1
Почему вы хотите перенаправить? Форма входа не должна быть представлена? И даже если на целевой странице нет логики, вы все равно сможете отправить форму на другую страницу.
Dimt

Ответы:

14810

Один не просто перенаправить с помощью 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";

// Another method for doing redirecting with JavaScript is this:
window.location = "https://stackoverflow.com";
Райан МакГири
источник
78
в случае кнопки отправки добавить возврат false; также внутри вашей функции
Абхи
134
Вопрос касается конкретно javascript, но, возможно, стоит отметить, что мета-обновление можно использовать в качестве возврата при сбое в случае, если у пользователя отключен javascript
Hoppe
22
@ NicolòMartini If (IE) document.write ("");
Джефф Ноэль
48
Если вы уже используете JQuery, просто используйте $(location).attr('href',url);. window.location.hrefкажется, что в некоторых браузерах наблюдается нестабильное поведение, на самом деле, это не работает в моей версии Firefox. Я слышал, что настройки window.locationне работают напрямую в версиях IE.
Noz
8
«лучше» следует убрать. Как будет указано далее в ответе, лучшее решение - ситуативное. OP не спрашивает «как я могу эмулировать перенаправление HTTP с помощью Javascript ...»
MadMaardigan
1685

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

$(location).attr('href', 'http://stackoverflow.com')
Борис Гери
источник
63
Это тот буквальный ответ на вопрос. Если вы уже используете Jquery и, следовательно, уже загрузили его, он будет более эффективным с точки зрения пропускной способности и, конечно, более понятным будет использовать ярлык
barrymac
27
Что еще более важно, есть ли способ сделать это с помощью jQuery, который был поднят? Это просто оболочка для window.location.href = url; Но если в jQuery есть какая-то функция, то если window.location.href = url; не будет работать в текущей среде (браузер, ОС и т. д.), может ли ядро ​​jQuery это компенсировать?
Крис
271
Внедрение jQuery в уравнение таким образом просто смешно и бессмысленно, тем более что window.locationоно не является элементом и поэтому не имеет атрибутов.
Тим Даун
10
Я почему-то сомневаюсь, что это все еще работает с последними версиями jQuery, где .attr()фактически устанавливаются атрибуты (то есть .setAttribute())
ThiefMaster
156
@deltaray Это не другой способ перенаправления, как сказано выше, это бессмысленная оболочка вокруг объекта местоположения, который даже не является элементом! Это напоминает мне о i.stack.imgur.com/ssRUr.gif
JCM
676

Стандартный «ванильный» способ 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-адреса, сеанс и т. Д.) Может помочь определить, является ли запрос законным. ( Примечание: есть также способы обойти / подделать этих рефереров, как отмечено ссылкой дропа в комментариях)


Простое решение для кросс-браузерного тестирования (возврат к 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; 
    }
}
Марк Песак - Trilon.io
источник
60
Заметка для ног: проверка реферера в качестве меры безопасности является паршивым решением. duckduckgo.com/?q=referrer+spoofing
droope
Если у вас есть идентификатор сеанса HTTP GET в URL-адресе реферера, его можно использовать для проверки соответствия сеанса на достоверность.
Эндрю Фокс
@mcpDESIGNS вы уверены, что пытались использовать location.assign? Я использую в своем приложении с IE8, и я не теряю HTTP_REFERERзаголовок.
Бузинас
По крайней мере, в 2012 году он не работал, возможно, более поздние исправления IE8 исправили это - хотя это приятно слышать!
Марк Писак - Trilon.io
1
Ваше упоминание HTTP_REFERER помогло мне понять проблему, возникающую у меня с window.open, и я нашел решение здесь: stackoverflow.com/questions/7580613/… . Кстати у меня проблема в IE11!
Дов Миллер
427

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

// 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')
Говинд Сингх
источник
8
window.navigateтолько для старых IE (Firefox / Chrome не поддерживают это). Если вы хотите перечислить все варианты, не забудьте о document.location.
Роб W
document.location = document.referrer; Пожалуйста, добавьте это в список также. Это работает не так, как History.back, скорее заставляет страницу Обновить снова.
Али Хумаюн
.attr () не будет работать на jQuery 3.0.0. используйте вместо него .val ().
Ривалус
4
@ LéoLam Вот почему существует поисковая система под названием Google. :-) Вы можете искать каждого из них в Google и найти разницу. Вы не хотите выбрать один случайно.
Я самый глупый человек
Вы также можете увидеть документы, developer.mozilla.org/en-US/docs/Web/API/Location
Джон Балвин Арии
330

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

window.location.href = 'your_url';
Фред
источник
8
Вы также document.location.replace(redirectURL)можете сделать это, если не хотите, чтобы первая страница была в истории браузера
jazzcat
298

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

<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
    });
});
tvanfosson
источник
252

Я также думаю, что 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 -->
Патартикс Милан
источник
228

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

window.location = window.location.host

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

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

Надим Ясин
источник
window.location.replace (window.location.protocol + "//" + window.location.host)
моала
13
еще проще: window.location = '/'
Ифта
213

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-адрес.

Нихил Агравал
источник
203

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

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

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

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

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

Алиреза
источник
1
Я рекомендую использовать assign()более, так href=как последний не работал должным образом для меня в некоторых случаях.
Марс
169

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

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

Патрик В. МакМахон
источник
5
Я отвечаю на его запрос о jQuery, говоря, что он не нужен. JQuery имеет много полезных ярлыков для JavaScript, но нет необходимости в ярлыках для перенаправлений. JQuery это просто JavaScript. Ничего больше. Обычный способ вызова перенаправления будет работать с его функциями, используя jQuery.
Патрик В. МакМэхон
165
var url = 'asdf.html';
window.location.href = url;
Бен Ли
источник
145

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

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

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

$jq(window).attr("location","http://yourdomain.com");
скорпион
источник
JQuery, пожалуй, лучшая идея, поскольку она может абстрагироваться от будущих изменений / устаревших
браузеров
@Epirocks Если в jQuery был разработан API, это могло бы быть веской причиной (хотя сомнительно, что этот API когда-либо изменится), но в данном примере мы просто неправильно используем функцию jQuery, где вы можете обернуть объекты не-DOM и некоторые методы все еще будут работать.
1j01
Тот факт, что «некоторые методы все еще будут работать» - это именно то, что я имею в виду, абстрагируясь. Да, вы можете сделать это без JQuery, но вы можете сделать все без JQuery, это не главное.
Epirocks
144

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

$(window).attr("location", "http://google.fr");
xloadx
источник
То, что это работает, не означает, что вы должны это делать. Это бессмысленная косвенность вокруг настройкиwindow.location
1j01
89

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

Шакти Картик
источник
"Использование jQuery" неточно. И пример использования полного URL не будет работать, так как это не полный URL. Там нет протокола, поэтому он будет интерпретироваться как относительный URL.
1j01
80

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

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

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

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
Ашиш Ратан
источник
80

Оригинальный вопрос: «Как перенаправить с помощью 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 вы можете подключиться к этому коду всего одной или двумя строками.

SergeDirect
источник
Заголовок Javascript: можно вместо этого сделать время в секундах?
PythonMaster202
79

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

Вам нужно только использовать 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;
iConnor
источник
74

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

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
Swaprks
источник
57

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

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

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

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

MayorMonty
источник
52

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

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

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

Anup
источник
52

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

$(location).attr('href', 'http://yourPage.com/');
Азам Алви
источник
45

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

window.location.href="http://google.com";
window.location.replace("page1.html");
Питер Мортенсен
источник
45

ECMAScript 6 + jQuery, 85 байт

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

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

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

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

Другие ответы с помощью JQuery - й attr()на locationили windowобъекты без необходимости.

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

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

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

В основном, передергивать.

1j01
источник
45

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
lalithkumar
источник
1
Есть ли причина хранить URL в jQuery как переменную, но не в Vanilla?
ESR
43

Используя 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");
Калпеш Панчал
источник
41

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

<!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>
Стефан Грюнвальд
источник
5
лучше сделать это: setTimeout (function () {window.location.href = " google.com "}, задержка);
Диккини
39

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

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

а также...

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

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

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

Бен
источник