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

javascript jquery redirect


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




Answer 1 Ryan McGeary


Нельзя просто переориентироваться,используя 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";



Answer 2 Boris Guéry


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

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



Answer 3 Mark Pieszak - Trilon.io


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

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

Или проще: (так как 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; 
    }
}



Answer 4 Govind Singh


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

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



Answer 5 Fred


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

window.location.href = 'your_url';