window.location = "location.html";

window.location = "location.html";

本文关键字:quot location html window      更新时间:2023-09-26

本质上,我正在尝试让我的网页在成功登录后重定向。我已成功登录,之后不会重定向到新页面。它会刷新它所在的当前页面。

我用来接受用户输入的表单。

<!-- Login Details -->
  <form name = "loginForm" onsubmit = "validate(this);">
    <p> 
        <label for = "username"> Username: </label> 
        <input type = "text" id = "username" name = "user"/> 
    </p>
    <p> <label for = "password"> Password: </label> 
        <input type = "password" id = "password" name = "pass" required/>
    </p>
    <p class = "submit"> 
        <input type = "submit" value = "Submit"/> 
    </p>
</form>

现在是它的JavaScript方面;

var user = form.user.value;
var pass = form.pass.value;
var valid = false;
var userArray = ["admin", "kevin", "mark", "paul", "conor"];        // ("admin1", "admin2", "admin3") As many as you like - no comma after final entry.
var passArray = ["pass", "pass1", "pass2", "pass3", "pass4"];   // ("Password1", "Password2", "Password3") the corresponding passwords;
for (var i = 0; i < userArray.length; i++) 
{
    if ((user == userArray[i]) && (pass == passArray[i])) 
    {
        valid = true;
        //alert("Login was successful");
        break;
    }
}
if (valid == true)
{
    alert ("Login was successful");
    window.location = 'mainmenu.html';
    return false;
}

我已经通过使用双引号和单引号尝试了新位置。两者都不起作用。感谢您的帮助:)

您正在提交表单。您尚未指定操作,因此它将提交到当前页面。这发生在location分配产生任何效果之前。

使用您当前的方法,修复它return falseonsubmit(即调用validate的函数)开始,因此表单提交的正常行为被取消。


可是:

  • 将所有身份验证信息放在客户端上是完全不安全的,您永远不应该这样做。
  • onsubmit这样的内在事件属性是我们在 90 年代进行 JS 事件绑定的方式。我们现在有addEventListener(另见preventDefault)。

来自 Mozilla 开发者网络:

Window.location 只读属性返回一个 Location 对象,其中包含 有关文档当前位置的信息。

和:

每当为位置对象分配新值时,文档 将使用 URL 加载,就好像调用了 location.assign() 一样 使用修改后的网址。请注意,安全设置(如 CORS)可能会 防止这种情况有效地发生。

location.assign("http://www.mozilla.org"); // or
location = "http://www.mozilla.org";

这是这里的示例 1:https://developer.mozilla.org/en-US/docs/Web/API/Window.location