如何使用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从一个页面转到另一个页面?的主要内容,如果未能解决你的问题,请参考以下文章