我如何重定向到另一个网页

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


标准的 "vanilla "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粘贴,会话等)进行测试可以帮助判断请求是否合法。 请注意:还有一些方法可以解决/欺骗这些引荐来源网址,如评论中的下垂链接所指出的那样)


简单的跨浏览器测试解决方案(对于Internet Explorer 9+和所有其他浏览器,回退到window.location.href)

用法: 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';