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

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

Комментарии к вопросу (10)
Решение

Нельзя просто перенаправить с помощью 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";
Комментарии (26)

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

$(location).attr('href', 'http://stackoverflow.com')
Комментарии (18)

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

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

Или более просто: (поскольку window является Global)

location.href = 'newPage.html';

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

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


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

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

Проверка на HTTP_REFERER (вставка URL, сессия и т.д.) может быть полезной для определения легитимности запроса. (Примечание: также существуют способы обхода/подмены этих рефереров, как отмечено по ссылке 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; 
    }
}
Комментарии (6)

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

// 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.location.href = 'your_url';
Комментарии (1)

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

<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
    });
});
Комментарии (0)

Я тоже думаю, что место.заменить(URL-адрес) - это самый лучший способ, но если вы хотите, чтобы уведомить поисковые системы о вашем перенаправление (они Дон&#39;т анализировать код JavaScript, чтобы увидеть перенаправление) вы должны добавитьотн=с"каноническое"` в мета-тег на свой сайт.

Добавление тега NoScript с помощью HTML-тега meta Refresh в это, тоже хорошее решение. Я предлагаю вам использовать этот [инструмент перенаправления на JavaScript][1] для создания перенаправлений. Он также имеет интернет и усилителя;усилитель; nbsp;поддержка проводника для передачи HTTP-реферера.

Пример кода без задержки выглядит так:










    <meta http-equiv="refresh" content="0;URL=https://yourdomain.com/">


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

[1]: http://insider.zone/tools/client-side-url-redirect-generator/ "на стороне клиента URL-адрес перенаправления код генератор"и

Комментарии (0)

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

window.location = window.location.host

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

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

Комментарии (3)

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

var currentLocation = window.location;

Базовой структуры URL-адресов

//:/<pathname>

  1. Протокол-имя протокола, используемого для доступа к ресурсам в Интернете. (Протокол HTTP (без SSL) или HTTPS (с поддержкой SSL))

  2. имя хоста-имя хоста, определяет хост, который владеет ресурсом. Например, www.stackoverflow.com. Сервер предоставляет услуги, используя имя узла.

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

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

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

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

С этими местоположения объекта недвижимости вы можете получить доступ ко всем из этих компонентов url

  1. хэш -устанавливает или возвращает часть якорь из URL-адреса.
  2. хоста -наборы или возвращает имя хоста и порт в URL-адрес.
  3. хоста -наборы или возвращает имя хоста.
  4. Солар -устанавливает или возвращает весь URL-адрес.
  5. путь -устанавливает или возвращает имя пути URL-адреса.
  6. порт -задает или возвращает номер порта, который сервер использует для URL.
  7. протокол -устанавливает или возвращает протокол URL-адреса.
  8. поиск -наборы или возвращает строку запроса URL-адреса

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

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

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

Расположение объекта также у этих трех методов

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

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

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

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

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

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

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

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

Комментарии (0)

В основном на jQuery это просто JavaScript для рамки и делать некоторые вещи, как переадресация** в этом случае, вы можете просто использовать чистом JavaScript, так что в этом случае у вас есть 3 варианта с помощью ванили на JavaScript:

  1. Используя расположение замена, в истории этой страницы, означает, что это не возможно, чтобы использовать обратно кнопку, чтобы вернуться к исходной странице.
window.location.replace("http://stackoverflow.com");
  1. используя местоположение назначить, это позволит сохранить историю для вас и с помощью кнопки назад можно вернуться на исходную страницу:
window.location.assign("http://stackoverflow.com");
  1. я рекомендую использовать один из этих предыдущих способов, но это может быть третий вариант с использованием чистого JavaScript.
window.location.href="http://stackoverflow.com";

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

Также я покажу им всем на изображении ниже:

Комментарии (1)

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

Пример:

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

Вот прошлый пост на эту тему: https://stackoverflow.com/questions/503093/how-can-i-make-a-redirect-page-in-jquery-javascript

Комментарии (1)

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

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

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

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

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

Следующее решение, используя сырые JavaScript работает во всех браузерах и были стандартом в течение длительного времени, так что вы Дон'т необходимости каких-либо библиотек для кросс-браузер поддержка.

Эта страница будет перенаправлять на Гугл после 3000 миллисекунд




        example


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

Различные варианты таковы:

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"

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

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

Мета-обновления

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

Мета расположения

<meta http-equiv="location" content="URL=http://evil.com" />

Захват базы

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

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

Следующий абзац является гипотетическим:

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

Пожалуйста, ознакомьтесь с рекомендациями Google для веб-мастеров по поводу редиректов: https://support.google.com/webmasters/answer/2721217?hl=en&ref_topic=6001971

Вот немного страницу удовольствие, что тебя вышвырнет странице.




        Go Away


        <h1>Go Away</h1>
        <script>
            setTimeout(function(){
                window.history.back();
            }, 3000);
        </script>

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

Комментарии (1)
var url = 'asdf.html';
window.location.href = url;
Комментарии (0)

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

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

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

$jq(window).attr("location","http://yourdomain.com");
Комментарии (3)

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

$(window).attr("location", "http://google.fr");
Комментарии (1)

# HTML-страницы перенаправления с помощью jQuery/JavaScript-код

Попробуйте этот пример кода:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

Если вы хотите дать полный URL-адрес в окно.расположение = "и www.google.co.in";.

Комментарии (1)

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

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

Если вы Don'т писать на jQuery, пойти с JavaScript:

window.location.replace("http://stackoverflow.com");
window.location.href("http://stackoverflow.com");
Комментарии (0)

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

Вам нужно использовать 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=https://stackoverflow.com

И если вы зайдете на эту ссылку, он автоматически перенаправит вас на stackoverflow.com.

И что's, как вы делаете простой редирект с помощью JavaScript

Редактировать:

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

Пример:

процесс: магазин главная => страницы перенаправить в Google => Гугла

когда в Google: Гугла => кнопка Назад в браузере => магазин бытовой

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

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

с

if( url ) window.location.href = url;
Комментарии (0)

Оригинальный вопрос: "как перенаправить с помощью jQuery?" и, следовательно, ответа реализуется на jQuery >> бесплатный случае использования.


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

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

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

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

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

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

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

Комментарии (0)

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

window.location.href = "The URL where you want to redirect";
$('#id').click(function(){
    window.location.href = "http://www.google.com";
});
Комментарии (0)