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

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

вопрос задан 2.02.2009
venkatachalam
48982 репутация

59 ответов


  • 13180 рейтинг

    Один из них не просто перенаправляется с помощью 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";
     
    ответ дан Ryan McGeary, с репутацией 183856, 3.02.2009
  • 1502 рейтинг

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

     $(location).attr('href', 'http://stackoverflow.com')
     
    ответ дан Boris Guéry, с репутацией 39940, 28.10.2009
  • 524 рейтинг

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


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

    Использование: redirect('anotherpage.aspx');

     function redirect (url) {
        var ua        = navigator.userAgent.toLowerCase(),
            isIE      = ua.indexOf('msie') !== -1,
            version   = parseInt(ua.substr(4, 2), 10);
    
        // Internet Explorer 8 and lower
        if (isIE && version < 9) {
            var link = document.createElement('a');
            link.href = url;
            document.body.appendChild(link);
            link.click();
        }
    
        // All other browsers can use the standard window.location.href (they don't lose HTTP_REFERER like Internet Explorer 8 & lower does)
        else { 
            window.location.href = url; 
        }
    }
     
    ответ дан Mark Pieszak - DevHelp.Online, с репутацией 25432, 27.07.2012
  • 356 рейтинг

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

     // 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')
     
    ответ дан Govind Singh, с репутацией 9809, 28.01.2014
  • 276 рейтинг

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

     window.location.href = 'your_url';
     
    ответ дан Fred, с репутацией 2801, 22.10.2010
  • 260 рейтинг

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

     <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, с репутацией 416703, 2.02.2009
  • 221 рейтинг

    Я также считаю, что 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 -->
     
    ответ дан Patartics Milán, с репутацией 3467, 25.04.2013
  • 196 рейтинг

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

     window.location = window.location.host
     

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

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

    ответ дан Nadeem Yasin, с репутацией 3354, 30.10.2012
  • 188 рейтинг

    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. port - номер порта, используемый для распознавания конкретного процесса, которому необходимо переадресовать Интернет или другое сетевое сообщение, когда он прибывает на сервер.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    ответ дан Nikhil Agrawal, с репутацией 16262, 23.12.2013
  • 171 рейтинг

    Должна просто установить window.location .

    Пример:

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

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

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

    ответ дан Newse, с репутацией 2020, 16.02.2014
  • 150 рейтинг

    Прежде чем начать, 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=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>
     

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

    ответ дан Patrick W. McMahon, с репутацией 2328, 27.08.2014
  • 146 рейтинг
    var url = 'asdf.html';
    window.location.href = url;
    
    ответ дан does_not_exist, с репутацией , 13.10.2009
  • 144 рейтинг

    В основном jQuery - это всего лишь инфраструктура JavaScript, и для выполнения некоторых вещей, таких как перенаправление, в этом случае вы можете просто использовать чистый JavaScript, поэтому в этом случае у вас есть 3 варианта с использованием ванильного 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

    ответ дан Alireza, с репутацией 39782, 26.02.2017
  • 131 рейтинг

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

     $(window).attr("location", "http://google.fr");
     
    ответ дан xloadx, с репутацией 1383, 5.09.2011
  • 130 рейтинг

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

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

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

     $jq(window).attr("location","http://yourdomain.com");
     
    ответ дан ScoRpion, с репутацией 6978, 23.05.2012
  • 79 рейтинг

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

    ответ дан Sakthi Karthik, с репутацией 1898, 6.02.2014
  • 72 рейтинг

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

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

    Пример:

    Процесс: сохранить home => перенаправить страницу в google => google

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

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

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

    с

     if( url ) window.location.href = url;
     
    ответ дан iConnor, с репутацией 14224, 30.08.2013
  • 66 рейтинг

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

     window.location.href = "The URL where you want to redirect";
    $('#id').click(function(){
        window.location.href = "http://www.google.com";
    });
     
    ответ дан Swaprks, с репутацией 1269, 14.11.2012
  • 65 рейтинг

    Вы должны поместить эту строку в свой код:

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

    Если у вас нет jQuery, перейдите на JavaScript с помощью:

     window.location.replace("http://stackoverflow.com");
    window.location.href("http://stackoverflow.com");
     
    ответ дан Ashish Ratan, с репутацией 2211, 27.01.2014
  • 59 рейтинг

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

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

    ответ дан SergeDirect, с репутацией 930, 26.12.2014
  • 54 рейтинг

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

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

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

    ответ дан tilak, с репутацией 2695, 19.11.2013
  • 50 рейтинг

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

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

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

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

    ответ дан MayorMonty, с репутацией 3091, 11.07.2013
  • 49 рейтинг

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

     $(location).attr('href', 'http://yourPage.com/');
     
    ответ дан Azam Alvi, с репутацией 3647, 5.09.2014
  • 47 рейтинг

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

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

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

    ответ дан Anup, с репутацией 2613, 6.06.2013
  • 40 рейтинг

    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, с репутацией 2691, 22.05.2015
  • 39 рейтинг

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

     window.location.href="http://google.com";
    window.location.replace("page1.html");
     
    ответ дан does_not_exist, с репутацией , 1.07.2013
  • 39 рейтинг

    ECMAScript 6 + jQuery, 85 байт

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

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

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

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

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

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

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

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

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

    ответ дан 1j01, с репутацией 1760, 13.04.2016
  • 36 рейтинг

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

     <!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>
     
    ответ дан Stefan Gruenwald, с репутацией 1886, 29.11.2013
  • 35 рейтинг

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

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

    а также...

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

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

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

    ответ дан Ben, с репутацией 1403, 7.07.2014
  • 35 рейтинг

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

     var url = 'http://www.fiftywaystoleaveyourlocation.com';
    $(location).prop('href', url);
     
    ответ дан Epiphany, с репутацией 1316, 28.02.2015
  • 30 рейтинг

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

     location.href = "http://google.com"
     
    ответ дан Bidyut, с репутацией 376, 10.06.2013
  • 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/")
     
    ответ дан Muhammad Waqas, с репутацией 1188, 4.12.2015
  • 27 рейтинг

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

    ответ дан Divyesh Kanzariya, с репутацией 1814, 3.03.2016
  • 24 рейтинг

    Используйте функцию 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()});
     
    ответ дан stratum, с репутацией 249, 11.09.2014
  • 23 рейтинг

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

    ответ дан Inconnu, с репутацией 3347, 13.12.2016
  • 23 рейтинг

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

    ответ дан Kalpesh Panchal, с репутацией 492, 23.02.2017
  • 19 рейтинг

    Просто в 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");
     
    ответ дан vipul sorathiya, с репутацией 997, 16.06.2015
  • 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>
    
    ответ дан Jaydeep Jadav, с репутацией 482, 29.01.2014
  • 16 рейтинг

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

    Вы можете использовать его, как в следующем коде, где 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"); 
     
    ответ дан Vinay Sharma, с репутацией 514, 10.12.2013
  • 12 рейтинг
    <script type="text/javascript">
        if(window.location.href === "http://stackoverflow.com") {      
             window.location.replace("https://www.google.co.in/");
           }
    </script>
    
    ответ дан sneha, с репутацией 307, 9.02.2017
  • 12 рейтинг

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

    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/');

    ответ дан SantoshK, с репутацией 1016, 24.10.2016
  • 12 рейтинг

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

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

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

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

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

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

    ответ дан madhur, с репутацией 606, 29.08.2016
  • 10 рейтинг

    Я уже использую функцию 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>
     
    ответ дан user1012506, с репутацией 838, 16.06.2016
  • 10 рейтинг

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

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

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

    Или:

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

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

    ответ дан Abhishek K. Upadhyay, с репутацией 656, 30.09.2016
  • 9 рейтинг
     // 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 должен быть включен и загружен /выполнен для этого, чтобы работать вообще.
    • Неясно, как на это реагируют поисковые системы.
    • Кодов статуса нет, поэтому вы не можете полагаться на информацию о перенаправлении.
    ответ дан Pankaj Mandale, с репутацией 378, 16.12.2017
  • 9 рейтинг

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

     function redirect(a) {
        location = a
    }
     

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

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

    ответ дан cascading-style, с репутацией 130, 23.11.2016
  • 9 рейтинг

    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
     
    ответ дан Must keem, с репутацией 605, 30.03.2018
  • 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> 

    ответ дан Zigri2612, с репутацией 1114, 4.03.2016
  • 8 рейтинг

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

     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']);
    }
     
    ответ дан HD.., с репутацией 825, 28.08.2017