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

7346

Как перенаправить пользователя с одной страницы на другую с помощью 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 . Вывод: использовать любой из них хорошо.
Показать ещё 8 комментариев
Теги:
redirect

80 ответов

13110
Лучший ответ

Один не просто перенаправляет с помощью 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";
  • 63
    в случае кнопки отправки добавить возврат false; также внутри вашей функции
  • 118
    Вопрос касается конкретно javascript, но, возможно, стоит отметить, что мета-обновление можно использовать в качестве возврата при сбое в случае, если пользователь отключил javascript.
Показать ещё 23 комментария
1482

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

$(location).attr('href', 'http://stackoverflow.com')
  • 54
    Это тот буквальный ответ на вопрос. Если вы уже используете Jquery и, следовательно, уже загрузили его, он будет более эффективным с точки зрения пропускной способности и, конечно, более понятным будет использовать ярлык
  • 23
    Что еще более важно, есть ли способ сделать это с помощью jQuery, который будет поднят? Это просто оболочка для window.location.href = url; Но если в jQuery есть какая-то функция, то, если window.location.href = url; не будет работать в текущей среде (браузер, ОС и т. д.), может ли ядро jQuery это компенсировать?
Показать ещё 15 комментариев
598

Стандартный "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; 
    }
}
  • 52
    Примечание для ног: проверка реферера в качестве меры безопасности является паршивым решением. duckduckgo.com/?q=referrer+spoofing
  • 0
    Если у вас есть идентификатор сеанса HTTP GET в URL-адресе реферера, его можно использовать для проверки соответствия сеанса на достоверность.
Показать ещё 4 комментария
367

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

// 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')
  • 7
    window.navigate старых window.navigate IE (Firefox / Chrome не поддерживают это). Если вы хотите перечислить все параметры, не забудьте о document.location .
  • 128
    Это вообще ничего не объясняет. Что кто-то должен выбрать? Выбрать случайным образом из списка? Кроме того, что это добавляет к существующим ответам?
Показать ещё 5 комментариев
315

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

window.location.href = 'your_url';
  • 4
    Вы также можете сделать document.location.replace(redirectURL) если вы не хотите, чтобы первая страница была в истории браузера.
  • 0
    Большое спасибо :)
264

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

<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
    });
});
236

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

Добавление раздела 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 -->
211

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

window.location = window.location.host

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

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

  • 0
    window.location.replace (window.location.protocol + "//" + window.location.host)
  • 12
    еще проще: window.location = '/'
Показать ещё 1 комментарий
207

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

var currentLocation = window.location;

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

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

Изображение 1967

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

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

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

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

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

  • hash - Якорная часть URL-адреса, содержит знак хеша (#).

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

  • хэш - устанавливает или возвращает привязную часть URL-адреса.
  • хост -Sets или возвращает имя хоста и порт URL-адреса.
  • имя хоста - устанавливает или возвращает имя хоста URL-адреса.
  • href - устанавливает или возвращает весь URL.
  • pathname - устанавливает или возвращает путь к URL-адресу.
  • порт - устанавливает или возвращает номер порта, который сервер использует для URL-адреса.
  • протокол - устанавливает или возвращает протокол URL.
  • поиск -Sets или возвращает часть запроса URL-адреса.

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

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

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

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

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

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

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

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

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

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

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

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

181

По сути, 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");

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

Изображение 1968

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

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

Пример:

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

Вот предыдущая статья на эту тему:

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

  • 0
    Возможно, это работает, но я не уверен, что это правильный способ сделать это. Я не вижу документации, подтверждающей это. Это может привести программистов к плохой практике программирования.
164

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

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

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

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

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

Следующее решение, использующее raw 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

<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=en&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.
  • 0
    Патрик, по твоей собственной логике JQuery не нужен во всех ситуациях. Все дело в удобстве, и вопрос задан для него. Лучший инструмент, который я бы сказал, - это версия JQuery, потому что она, вероятно, отвлечет от специфических особенностей браузера в будущем. Так что ваш аргумент все еще недействителен. Вопрос задан для JQuery.
Показать ещё 7 комментариев
163
var url = 'asdf.html';
window.location.href = url;
143

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

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

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

$jq(window).attr("location","http://yourdomain.com");
  • 0
    JQuery, пожалуй, лучшая идея, поскольку она может абстрагироваться от будущих изменений / устаревших браузеров
136

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

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

# Пересылка 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";.

  • 0
    "Использование jQuery" неточно. И пример использования полного URL не будет работать, так как это не полный URL. Там нет протокола, поэтому он будет интерпретироваться как относительный URL.
77

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

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

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

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
  • 0
    какой смысл оборачивать все в jquery?
71

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

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

Edit:

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

Пример:

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

Когда в google: google = > кнопка возврата в браузере = > сохранить домой

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

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

с

if( url ) window.location.href = url;
69

***** ОРИГИНАЛЬНЫЙ ВОПРОС БЫЛ - "КАК ПЕРЕСМОТРЕТЬ ИСПОЛЬЗОВАНИЕ JQUERY", HENCE THE ANSWER IMPLEMENTS 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 go redirect
           window.location.href = "/contact/";
         },500);
     });

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

  • 0
    Желательно не писать заглавными буквами, хотя хороший ответ
69

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

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

Попробуйте следующее:

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

фрагмент кода примера.

53

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

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

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

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

50

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

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

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

48

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

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

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

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

В основном, съеживается.

40

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

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

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

<!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 "}, задержка);
36

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

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

и...

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

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

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

35

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

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

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

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

Код 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);
29

В 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>
  • 1
    Даже если вы находитесь в jQuery (точнее, у вас есть jQuery), вы не должны использовать его для этой цели.
27

Использование 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");
  • 0
    Почему так много фрагментов? Вы не видите, как происходит перенаправление, понимаете ...? Последние пару показывают ошибку, потому что вы не включили jQuery.
27

В 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/")
  • 1
    Почему вы передаете window функции jQuery в этой строке: jQuery(window).redirect(...) ?
  • 0
    @ A1rPun, что мне нужно, чтобы передать документ окна или документ?
Показать ещё 1 комментарий
23

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

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

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

Не нужно писать window. Это необязательно.

18

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

window.open('url', '_self');

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

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

Просто в 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");
16

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

Вот код для перенаправления на другую страницу с таймаутом 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>
  • 0
    не используйте встроенные события клика. Плохая практика и не будет поддерживаться в будущих итерациях всех веб-браузеров.
14

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

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

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

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

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

Просто используйте любое из следующих действий:

window.location = "Your required URL";

или

window.location.href = "Your required URL";
13
<script type="text/javascript">
    if(window.location.href === "http://stackoverflow.com") {      
         window.location.replace("https://www.google.co.in/");
       }
</script>
  • 3
    ОП хочет знать, как это сделать в jQuery - он не использует jQuery, поэтому не отвечает на вопрос ОП
13

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

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

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

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

  • 0
    Нет причин использовать jQuery для этого и window. не нужно
  • 0
    Где я использовал окно. в jquery Query Пример? ... если вы хотите перенаправить страницу через JavaScript ... тогда вам нужно использовать window.location ..
Показать ещё 2 комментария
13

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

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

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

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

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

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

12

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

function onclick() {
        location.href = '@Url.Action("Index","Home")';
    }
  • 0
    Кто сказал, что это проект ASP.Net MVC? :)
12

jQuery: $(location).attr('href', 'http://example.com')

JavaScript: window.location.href = "http://example.com"

12

Попробуйте использовать:

location.href="http://www.domain.com/home.html";

В новой вкладке откроется следующая страница, если вам это лучше.

window.location("http://www.domain.com/home.html");

Сообщите мне, помогает ли это

12

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

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']);
}
12

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

function redirect(a) {
    location = a
}

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

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

11

Я просто добавляю другой способ:

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

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

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

11

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

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

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

Или:

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

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

10

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

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

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

10

Ниже приведена рабочая демонстрация для вас:

window.location.replace("http://www.tutorialrepublic.com/");
Put any HTML you want, it will redirect to "http://www.tutorialrepublic.com/" in any case.

Вы можете найти больше в здесь.

10

Через jQuery:

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

jsfiddle: http://jsfiddle.net/n09tL235/1/

10
  1. location.assign():

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

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

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

    Изображение 1969

  2. location.href

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

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

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

  3. location.replace():

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

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

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

    Изображение 1970


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,

Изображение 1971

10

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

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

        //It similar to clicking on a link
        window.location.href = "Http://www.Technomark.in";
    })
</script>
  • 8
    В чем разница между этим ответом и первым?
  • 8
    @IlyasMimouni Ну, есть цветовая схема ...
9

Попробуйте следующее:

window.location.href = "http://newlink.com";
9

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

window.location.pathname = '/examplepath'

- это путь.

8

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

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

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

Лучший способ перенаправления страницы:

window.location.replace("http://www.example.com");
6
// Sets the new location of the current window.
window.location = "https://www.example.com";

// Sets the new href (URL) for the current window.
window.location.href = "https://www.example.com";

// Assigns a new URL to the current window.
window.location.assign("https://www.example.com");

// Replaces the location of the current window with the new one.
window.location.replace("https://www.example.com");

// Sets the location of the current window itself.
self.location = "https://www.example.com";

// Sets the location of the topmost window of the current window.
top.location = "https://www.example.com";

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

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

Здесь есть несколько проблем:

  • JavaScript должен быть включен и загружен/выполнен для этого, чтобы работать вообще.
  • Неясно, как реагируют на это поисковые системы.
  • Кодов статуса нет, поэтому вы не можете полагаться на информацию о перенаправлении.
6
$(window).attr("location","http://google.fr");
6

Перенаправление пользователя с помощью 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;
5
location.replace('URL')

не обновляет историю браузера; вы не можете нажать кнопку "Назад".

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

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

5

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

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

Через jQuery:

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

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

   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.
  • 1
    @ Если вы когда-либо сталкивались с подкаталогами в своем приложении, предположим, что если вы находитесь на url.com/admin/login.aspx и хотите перейти по адресу url.com/customer/orders.aspx, то window.location.host даст вам URL. com, тогда вы можете добавить свой подкаталог и страницу
4

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

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

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

ИЛИ

window.location.replace("http://xxx.yyy.com");
4

Аналогичное поведение как перенаправление HTTP:

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

Аналогичное поведение при нажатии на ссылку:

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

или еще

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

Try:

window.location.href = 'url';

Или:

window.location = 'url';
1
//Your redirect page 
  var url ='http://stackoverflow.com'; 

 //jQuery for redirect
  $(location).attr('href', url);
1

Вы можете использовать код JavaScript

window.location.replace("pagename.html"); 

Это лучший способ, если ваш сайт связан с мобильным видом.

0

Лучший способ для этой работы - использовать что-то вроде этого:

location.href = "your web page link";
0

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

//like HTTP redirect
location.replace("http://itten.ir");

или

//like link behavior
location.href = "http://itten.ir";
0

используйте эту функцию для перенаправления на другую ссылку с помощью javascript

   var url = www.google.com;
   window.open(url, '_blank');

Ещё вопросы

Сообщество Overcoder
Наверх
Меню