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


Answers

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

$(location).attr('href', 'http://stackoverflow.com')
Question

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




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

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



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

  window.location.href = "/destination.html";

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

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

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

function redirect () {
    $('selection').animate({
        marginLeft: 100px; //Put some CSS animation here
    }, 500, function () {
      // OK, finished jQuery staff, let's go redirect
      window.location.href = "/destination.html";
})

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




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

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

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




var url = 'asdf.html';
window.location.href = url;



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

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

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

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




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

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



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

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

И если вы перейдете по этой ссылке, она автоматически перенаправит вас на .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;



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

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

а также...

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

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

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




ECMAScript 6 + jQuery, 85 байт

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

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

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

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

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

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

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

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

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




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

window.location = window.location.host

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

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




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

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



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

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






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

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

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

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

window.location.assign("http://.com");

3) Я рекомендую использовать один из этих предыдущих способов, но это может быть третий вариант с использованием чистого JavaScript:

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

Вы также можете написать функцию в jQuery для ее обработки, но не рекомендуется, так как это только одна строка с чистой функцией JavaScript, также вы можете использовать все вышеперечисленные функции без окна, если вы уже находитесь в области окна, например window.location.replace("http://.com"); может быть location.replace("http://.com");

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