如何使用javascript从一个页面转到另一个页面?

Posted

技术标签:

【中文标题】如何使用javascript从一个页面转到另一个页面?【英文标题】:How to go from one page to another page using javascript? 【发布时间】:2010-12-13 06:00:25 【问题描述】:

如果用户是有效的,那么浏览器应该从管理页面转到另一个页面。

当用户输入他的用户名和密码,然后单击确定按钮后,将显示另一个页面并自动关闭登录页面。

如何使用 javascript 做到这一点?

【问题讨论】:

虽然不清楚你想要什么,但使用 javascript 来处理登录和重定向并不是一个好主意,因为精明的用户可以轻松绕过这样的限制。 【参考方案1】:

使用 javascript 简单地重定向浏览器:

window.location.href = "http://example.com/new_url";

要重定向并提交表单(即登录详细信息),不需要 javascript:

<form action="/new_url" method="POST">
   <input name="username">
   <input type="password" name="password">
   <button type="submit">Submit</button>
</form>

【讨论】:

额外说明,至少 Safari 可以处理这个问题:您不需要为脚本方法指定域。因此,如果您的代码已经位于 http://example.com,那么只需 window.location.href = 'new_url'; 即可。如果您的代码将用于多个域,但您总是希望用户被重定向到他们所在域中的相同子路径,这将特别有用。 下一页是否可以接收到表单POST的信息?【参考方案2】:

试试这个,

window.location.href="sample.html";

这里sample.html 是下一页。它将转到下一页。

【讨论】:

【参考方案3】:

不能完全依赖客户端 JavaScript 来确定用户凭据是否正确。浏览器(以及执行它的所有代码)都在用户的控制之下,而不是你,所以它不值得信赖。

用户名和密码需要使用表格输入。 OK 按钮将是一个提交按钮。 action 属性必须指向一个 URL,该 URL 将由检查凭据的程序处理。

这个程序可以用 JavaScript 编写,但如何执行取决于您使用的是哪个 server side JavaScript engine。请注意,SSJS 不是主流技术,因此如果您真的想使用它,则必须使用专门的托管或管理您自己的服务器。

(五年后,由于 Node.js,SSJS 变得更加普遍,但它仍然相当专业)。

如果你想在之后重定向,那么程序需要发出一个HTTP Location header。

请注意,在输出任何私人页面之前,您需要检查凭据是否正常(通常通过在 cookie 中存储不是实际密码的令牌)。否则任何人都可以通过知道 URL(从而绕过登录系统)进入私人页面。

【讨论】:

【参考方案4】:

在 javascript 中验证用户是管理员会导致麻烦,因为任何人都可以看到 javascript 代码。服务器应该在登录过程之后区分管理员和普通用户,然后相应地生成新页面。

也许这不是您试图回答您的问题的方式:

window.location.href="<the page you are going to>";

【讨论】:

【参考方案5】:

我得到的正确解决方案是

<html>
      <head>
        <script type="text/javascript" language="JavaScript">
                  function clickedButton()
            

                window.location = 'new url'

            
             </script>
      </head>

      <form name="login_form" method="post">
            ..................
            <input type="button" value="Login" onClick="clickedButton()"/>
      </form>
 </html>

这里新的 url 在单引号内给出。

【讨论】:

【参考方案6】:

试试这个:

window.location.href = "http://PlaceYourUrl.com";

【讨论】:

我认为这确实提供了问题的答案。【参考方案7】:

更简单的方法是window.location.href = "http://example.com/new_url";

但是如果你想使用 JavaScript 检查用户名和密码是否为空并将其发送到 php 以检查数据库中的用户。您可以按照此代码轻松完成此操作。

html 表单 -

<form name="myForm" onsubmit="return validateForm()" method="POST" action="login.php" >         
    <input type="text" name="username" id="username" />
    <input type="password" name="password" id="password" />
    <input type="submit" name="submitBt"value="LogIn" />
</form>

javascript 验证-

function validateForm()
    var uname = document.forms["myForm"]["username"].value;
    var pass = document.forms["myForm"]["password"].value;

    if((!isEmpty(uname, "Log In")) && (!isEmpty(pass, "Password")))

        return true;
    else
        return false;
    


function isEmpty(elemValue, field)
    if((elemValue == "") || (elemValue == null))
        alert("you can not have "+field+" field empty");
        return true;
    else
        return false;
    

使用php检查用户是否在数据库中

<?php
    $con = mysqli_connect("localhost","root","1234","users");

    if(mysqli_connect_errno())
        echo "Couldn't connect ".mysqli_connect_error();
    else
        //echo "connection successful <br />";
    

    $uname_tb = $_POST['username'];
    $pass_tb = $_POST['password'];

    $query ="SELECT * FROM user";
    $result = mysqli_query($con,$query);

    while($row = mysqli_fetch_array($result))
        if(($row['username'] == $uname_tb) && ($row['password'] == $pass_tb))
            echo "Login Successful";
            header('Location: dashbord.php');
            exit();
        else
            echo "You are not in our database".mysqli_connect_error();
        
    
    mysqli_close($con);
?>

【讨论】:

【参考方案8】:

希望这会有所帮助:

window.location.href = '/url_after_domain';

【讨论】:

【参考方案9】:

还有几种重定向方式:

location.replace("http://example.com"); location.href = "http://example.com" window.location = "http://example.com" window.location.href = "http://example.com"

【讨论】:

【参考方案10】:

对于 MVC 开发人员,使用 javascript 重定向浏览器:

window.location.href = "@Url.Action("Action", "Controller")";

【讨论】:

以上是关于如何使用javascript从一个页面转到另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章

页面浏览量颤动如何跳转到另一个页面

jsp中如何点击按钮跳转到另一个页面?

PHP页面如何自动跳转到另一个页面底部

js如何在指定页面跳转到另一指定页面

html中怎么从一个页面跳转到另一个页面

一个页面跳转到另一个页面的tab选项卡的指定页上