it-roy-ru.com

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

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

7729
venkatachalam

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

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

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

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

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; 
    }
}
586
Mark Pieszak - Trilon.io

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

// 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')
398
Govind Singh

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

window.location.href = 'your_url';
308
Fred

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

<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
    });
});
282
tvanfosson

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

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

window.location = window.location.Host

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

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

216
Nadeem Yasin

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

var currentLocation = window.location;

Базовая структура URL

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

enter image description here

  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. путь -Устанавливает или возвращает имя пути URL.
  6. порт - устанавливает или возвращает номер порта, который сервер использует для URL-адреса.
  7. protocol -Устанавливает или возвращает протокол URL.
  8. search -Устанавливает или возвращает часть запроса URL

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

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

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

Location Object также есть эти три метода

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

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

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

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

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

Вы можете изменить свойство href объекта location, используя jQuery также как это

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

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

202
Nikhil Agrawal

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

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

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

2) Используя location 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

191
Alireza

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

Пример:

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

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

190
Newse

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

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

META Location

<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>

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

162
Patrick W. McMahon
var url = 'asdf.html';
window.location.href = url;
157
user188973

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

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

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

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

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

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

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

84
Sakthi Karthik

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

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

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

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

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

Вам нужно только использовать 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 и вы будете перенаправлены, когда вы нажимаете кнопку возврата в браузере, это будет not вернулся на страницу перенаправления, и он вернется на страницу перед этим, взглянем на эту небольшую демонстрационную вещь.

Пример:

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

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

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

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

с

if( url ) window.location.href = url;
75
iConnor

***** ОРИГИНАЛЬНЫЙ ВОПРОС БЫЛ - "КАК ПЕРЕПРАВИТЬ ИСПОЛЬЗОВАНИЕ 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 вы можете подключиться к этому коду всего одной или двумя строками.

70
SergeDirect

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

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

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

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

Пример кода .

58
tilak

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

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

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

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

54
MayorMonty

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

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

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

51
Anup

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

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

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

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

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
43
lalithkumar

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. Гольф, очевидно, не то, что вы должны делать за пределами гольф-кода, и, кроме того, этот ответ явно не гольф.

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

42
1j01

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

<!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>
39
Stefan Gruenwald

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

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

а также...

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

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

Правка: префикс window является необязательным.

36
Ben

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

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

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

location.href = "http://google.com"
35
Bidyut

код 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);
33
Divyesh Kanzariya

В 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>

В raw 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>
30
Inconnu

Используя 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");
29
Kalpesh Panchal

В 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/")
27
Muhammad Waqas

Используйте функцию 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()});
23
stratum

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

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

Или же

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

Или же

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

Используя jQuery:

$(window).attr("location","http://www.test.com");
18
vipul sorathiya
<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
Jaydeep Jadav

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
17
Asif J

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

function savePopUp(){
    $.blockUI();
    $.ajax({
        url:"saveGuestHouse?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"); 
16
Vinay Sharma

Вот код для перенаправления на другую страницу с тайм-аутом в 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
Adarsh Gowda K R

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

function redirect(a) {
    location = a
}

И назовите это с: redirect([url]);

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

14
cascading-style
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
14
sneha

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

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

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

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

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

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

13
SantoshK

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

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

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

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

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

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

13
madhur

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

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");

Angular 4

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

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

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

<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>

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

12
Maniruzzaman Akash

Это очень легко осуществить. Ты можешь использовать:

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

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

Или же:

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

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

12
Abhishek K. Upadhyay

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

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

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

11
Alessandro Foolish Ciak DAnton
  1. location.assign ():

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

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

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

    Enter image description here

  2. location.href

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

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

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

  3. location.replace ():

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

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

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

    Enter image description here


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 from chrome

11
Mohideen bin Mohammed

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

window.location.pathname = '/examplepath'

был бы способ пойти.

10
RuNpiXelruN

Я уже использую функцию 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>
10
user1012506

Использование 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);
}
9
Andrei Todorut

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

<!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>
8
Zigri2612

Перенаправление пользователя с использованием 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;
6
devst3r

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

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

5
Omkaar.K

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

   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
dnxit