使用jQuery或纯 JavaScript 如何将用户从一页转到另一页?
当前回答
应该能够设定使用window.location
.
示例:
window.location = "https://stackoverflow.com/";
以下是关于此议题的过去文章:我该如何转到另一个网页?
其他回答
标准“ vanilla” JavaScript 重定向页面的方法
window.location.href = 'newPage.html';
或更简单: (自window
全球)
location.href = 'newPage.html';
如果你在这里,因为你损失HTTP_REFERERER 重定向时, 继续读取 :
(否则忽略此最后部分)
下一节针对的是那些使用HTTP_REFERER
作为许多安全措施之一的安全措施(尽管这不是一个伟大的保护措施)。因特网探索者 8使用任何形式的 JavaScript 页面重定向( 位置.href 等) 时, 这些变量会丢失 。
我们将在下面实施一个替代方案:IE8 更低这样我们就不会失去 HTTP_REFERER。 否则,你几乎总是可以简单地使用 HTTP_REFERERER。window.location.href
.
测试HTTP_REFERER
(URL 粘贴、 会话等)能够帮助判断请求是否合法 。(注:正如Droop在评论中指出的,也有一些办法可以对这些裁判员进行变通/补充)
简单的交叉浏览器测试解决方案( 返回窗口. place.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;
}
}
您可以使用:
window.location.replace("http://www.example.com/");
缩略replace()
方法不会保存会话历史中的源页, 因此用户无法使用后端按钮返回, 然后再被重定向 。 注意: 在此情况下, 浏览器后端按钮将被禁用 。
但是,如果您想要与点击链接相同的效果,您应该选择:
window.location.href = "http://www.example.com/";
在此情况下, 浏览器后端按钮将激活 。
以下是一个时间延迟重定向。 您可以将延迟时间设定为任何您想要的时间 :
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Your Document Title</title>
<script type="text/javascript">
function delayer(delay) {
onLoad = setTimeout('window.location.href = "http://www.google.com/"', delay);
}
</script>
</head>
<body>
<script>
delayer(8000)
</script>
<div>You will be redirected in 8 seconds!</div>
</body>
</html>
使用 jQuery 函数 :
$.extend({
redirectPost: function(location, args) {
var form = '';
$.each(args, function(key, value) {
form += '<input type="hidden" name="' + key + '" value="' + value + '">';
});
$('<form action="' + location + '" method="POST">' + form + '</form>').appendTo($(document.body)).submit();
}
});
在你的代码中,你使用它这样:
$.redirectPost("addPhotos.php", {pimreference: $("#pimreference").val(), tag: $("#tag").val()});
jj 用于重定向页面或 URL 的查询代码
第一路
这是用于重定向页面的 jQuery 代码 。 既然, 我已经把这个代码放在$( document). ready () 函数上, 一旦页面加载, 它将会立即执行 。
var url = "http://stackoverflow.com";
$(location).attr('href',url);
您甚至可以直接将一个 URL 直接传送到attr()方法,而不是使用变量。
第二路
window.location.href="http://stackoverflow.com";
您也可以使用这样的代码(两者在内部相同):
window.location="http://stackoverflow.com";
如果您对窗口. 位置和window.location.href
,然后你可以看到后一个设置href
明确表明财产,而前者默示地这样做。window.location
返回一个对象,该对象默认设置它.href
财产。
第三路
使用 JavaScript (JavaScript)replace()
方法方法的计算方法的计算方法window.location
对象。您可以将新的 URL 传送到replace()
方法, 它将模拟 HTTP 重定向。 顺便说一下, 记住window.location.replace()
方法不会在会话历史中放置原始页面, 这可能影响到后按钮的行为。 有时, 它会是你想要的, 所以要小心使用它 。
// Doesn't put originating page in history
window.location.replace("http://stackoverflow.com");
第四路
缩略location.assign()
方法在浏览器窗口中装入新文档。
window.location.assign("http://stackoverflow.com");
和(或)assign()
和replace()
方法为location.replace()
从文档历史中删除当前 URL 的方法,因此无法返回原始文档。您不能使用浏览器。后退按钮。如果您想要避免这种情况,应该使用location.assign()
方法,因为它在浏览器中装入一个新的文档。
第五路
类似attr()方法 (在 jQuery 1. 6 引入后)
var url = "http://stackoverflow.com";
$(location).prop('href', url);