我如何重定向到另一个网页?
如何使用jQuery或纯JavaScript将用户从一个页面重定向到另一个页面?
一个不会简单地使用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";
警告:此答案仅作为可能的解决方案提供; 它显然不是最好的解决方案,因为它需要jQuery。 相反,更喜欢纯粹的JavaScript解决方案。
$(location).attr('href', 'http://stackoverflow.com')
标准的“香草”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粘贴,会话等)进行测试可以有助于判断请求是否合法。 ( 注意:也有解决/欺骗这些推荐人的方法,正如评论中的下垂链接所指出的那样)
简单的跨浏览器测试解决方案(适用于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;
}
}
链接地址: http://www.djcxy.com/p/17.html