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

7702

如何使用jQuery或纯JavaScript将用户从一个页面重定向到另一个页面?

58个回答

46

这里是一个时间延迟重定向。你可以将延迟时间设置为任何你想要的值:

<!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>

44

有三种主要方法可以实现这一点,

window.location.href='blaah.com';
window.location.assign('blaah.com');

需要翻译的内容为 "

and...

"
window.location.replace('blaah.com');

最后一个是最好的,对于传统的重定向,因为它不会在您的搜索历史记录中保存被重定向之前所访问的页面。但是,如果你只想用JavaScript打开一个标签页,你可以使用上述任何一个。1

编辑: window 前缀是可选的。


44

我刚刚不得不使用另一种新的jQuery方法来更新这个荒谬的东西:

var url = 'http://www.fiftywaystoleaveyourlocation.com';
$(location).prop('href', url);

38
在PHP、HTML或jQuery部分之后编写以下代码。如果在PHP或HTML部分中间,则使用

33
在jQuery中,使用$(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>


27

在 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/")

1
为什么你在这一行中将 window 传递给 jQuery 函数:jQuery(window).redirect(...) - A1rPun
@A1rPun 我需要传递窗口还是文档? - Muhammad Waqas
2
这不应该成为jQuery方法,这没有任何意义。$("div").redirect(url)$().redirect(url)之间没有区别。你可以将其作为静态方法,例如$.redirect(url),但实际上并没有太大的必要。jQuery根本不需要参与其中。 - 1j01

26

使用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()});

24

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");

21

您可以像以下代码一样使用它,其中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"); 

19

使用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);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接