如何使用jQuery或纯JavaScript将用户从一个页面重定向到另一个页面?
这里是一个时间延迟重定向。你可以将延迟时间设置为任何你想要的值:
<!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>
有三种主要方法可以实现这一点,
window.location.href='blaah.com';
window.location.assign('blaah.com');
and...
"window.location.replace('blaah.com');
最后一个是最好的,对于传统的重定向,因为它不会在您的搜索历史记录中保存被重定向之前所访问的页面。但是,如果你只想用JavaScript打开一个标签页,你可以使用上述任何一个。1
编辑: window
前缀是可选的。
我刚刚不得不使用另一种新的jQuery方法来更新这个荒谬的东西:
var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);
$(location).attr('href', url)
。
$(document).ready(function(){
var url = "https://www.youtube.com/watch?v=JwMKRevYa_M";
$(location).attr('href', url); // Using this
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
在原始JavaScript中,有很多种方法可以实现这个:
window.location.href="https://www.youtube.com/watch?v=JwMKRevYa_M";
- 明确设置 href 属性。
window.location = "http://www.GameOfThrones.com";
- 它是否隐式地这样做,因为window.location返回一个对象,默认情况下设置其.href属性。
window.location.replace("http://www.stackoverflow.com");
- 用新的窗口替换当前窗口的位置。
self.location = "http://www.somewebsite.com";
- 设置当前窗口本身的位置。
这里是 JavaScript 在一定时间后重定向的示例(3 秒钟):
<script>
setTimeout(function() {
window.location.href = "https://www.youtube.com/";
}, 3000);
</script>
在 JavaScript 和 jQuery 中,我们使用以下代码来重定向页面:
window.location.href="http://google.com";
window.location.replace("page1.html");
但是你可以在 jQuery 中编写一个函数来重定向页面:
jQuery.fn.redirect=function(url)
{
window.location.href=url;
}
然后调用这个函数:
jQuery(window).redirect("http://stackoverflow.com/")
使用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()});
在 JavaScript 中,你可以使用以下代码将页面重定向到特定的页面:
```javascript window.location.href = "http://www.example.com"; ```window.location.replace("http://www.test.com");
或者
location.replace("http://www.test.com");
或者
window.location.href = "http://www.test.com";
使用jQuery:
$(window).attr("location","http://www.test.com");
您可以像以下代码一样使用它,其中getRequestToForwardPage
是请求映射(URL)。 您也可以使用自己的URL。
function savePopUp(){
$.blockUI();
$.ajax({
url:"GuestHouseProcessor?roomType="+$("#roomType").val(),
data: $("#popForm").serialize(),
dataType: "json",
error: (function() {
alert("Server Error");
$.unblockUI();
}),
success: function(map) {
$("#layer1").hide();
$.unblockUI();
window.location = "getRequestToForwardPage";
}
});
这是关于应用程序相同上下文的内容。
如果你只想使用jQuery特定代码,那么以下代码可能会有所帮助:
$(location).attr('href',"http://www.google.com");
$jq(window).attr("location","http://www.google.com");
$(location).prop('href',"http://www.google.com");
使用location.replace()
会重定向到新页面,但不会保存上一页的历史记录。这在表单提交时使用最佳。
当您想要保留浏览历史记录时,应使用location.href=//path
。
例如:
// Form with steps
document.getElementById('#next').onclick = function() {
window.location.href='/step2' // Iteration of steps;
}
// Go to next step
document.getElementById('#back').onclick = function() {
window.history.back();
}
// Finish
document.getElementById('#finish').onclick = function() {
window.location.href = '/success';
}
// On success page
window.onload = function() {
setTimeout(function() {
window.location.replace('/home'); // I can't go back to success page by pressing the back button
},3000);
}
window
传递给 jQuery 函数:jQuery(window).redirect(...)
? - A1rPun$("div").redirect(url)
和$().redirect(url)
之间没有区别。你可以将其作为静态方法,例如$.redirect(url)
,但实际上并没有太大的必要。jQuery根本不需要参与其中。 - 1j01