点击按钮时,我尝试了六种方法在同一个标签页中打开页面,但没有一种方法可以在FireFox或Edge上运行:
window.location ="advance.html";
没有任何反应
window.location ="/advance.html";
没有任何反应
window.location.href ="advance.html";
没有任何反应
window.location.href ="/advance.html";
没有任何反应
window.open("advance.html", _self);
没有任何反应
window.open("advance.html");
在新标签页中打开页面
一直在努力尝试每一个建议,没有任何效果。
我在这里缺少什么?
修改 由于人们要求上下文(我知道用户名和密码是纯文本的,我只是想让这个部分先工作):
<script language="javascript">
function goHome()
{
window.location = 'index.html';
};
function login(form)
{
if(form.company.value == "advance" && form.password.value == "1234")
{
window.location.href ="advance.html";
}
else if(form.company.value == "" || form.password.value == "")
{
}
else
{
alert("Incorrect Usename/Password combination please try again.");
form.password.value = "";
}
}
答案 0 :(得分:1)
我实际上是通过实验来解决这个问题,因为MDN文档对此并不清楚,但似乎window.location
使用带协议的完整路径,但接受以.
开头的相对路径或..
以及以/
开头的绝对网站路径。
这意味着你的第二个和第四个例子确实有效。
window.location = "/advance.html";
如果这不适合你,那么错误可能在其他地方,或者浏览器不一致(这会让我感到惊讶,因为这是一个旧功能)。
答案 1 :(得分:0)
请勿使用提交,请使用如下按钮:
<input type="button" onclick="login(this.form)" value="login">
function login(form) {
if (form.company.value == "advance" && form.password.value == "1234")
{
window.open("advance.html", "_top");
}
}
答案 2 :(得分:0)
我认为问题出在您的window.open("advance.html", _self);
。您必须引用“ _self”。 window.open("advance.html", "_self");
该代码应该有效。
您也可以在其中使用location参数。类似于`location.assign(“ advance.html”)。它将在新窗口中打开它。