通过Javascript

时间:2017-04-13 15:05:18

标签: javascript html tabs

点击按钮时,我尝试了六种方法在同一个标​​签页中打开页面,但没有一种方法可以在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 = "";
        }
    }

3 个答案:

答案 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”)。它将在新窗口中打开它。