在javascript中单击按钮时如何从另一个HTML文件加载一个html文件?

时间:2018-09-10 15:37:17

标签: javascript html google-chrome-extension google-chrome-app

我是开发Chrome应用程序的新手。我有login.html文件和home.html文件,当我单击login button时,我正在呼叫login API,并且在成功响应中,我需要加载home.html文件并且需要退出login page。我尝试了很多方法,但我做不到。

请帮助我。

这是我的代码

function callSigninApi(email, password)
{
  var data = new FormData();
  data.append("emailid", email);
  data.append("password", password);

  var xhr = new XMLHttpRequest();
  xhr.withCredentials = true;

  xhr.addEventListener("readystatechange", function () {
    if (this.readyState === 4) {
      var resultData = JSON.parse(this.responseText);
      console.log(resultData);

      if (resultData.status == "100") 
      {
        console.log("Login success");
        // self.location="/home.html";
        //chrome.app.window.current().location.path = "/home.html";

        //let params = `scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=600,height=300,left=100,top=100`;
        //open('/', 'home.html', params);

        // let html = `<div style="font-size:30px">Welcome!</div>`;
        // chrome.app.window.current().document.body.insertAdjacentHTML('afterbegin', html);

        // window.location("/home.html");

        //  let newWindow = open('/', 'home', 'width=300,height=300')
        //  //newWindow.focus();

        // newWindow.onload = function() {
        //   let html = `<div style="font-size:30px">Welcome!</div>`;
        //   newWindow.document.body.insertAdjacentHTML('afterbegin', html);
        // };

        // let html = `<div style="font-size:30px">Welcome!</div>`;
        // chrome.app.window.current().document.body.insertAdjacentHTML('afterbegin', html);

        //chrome.app.window.current().open("./home.html");

        //window.location.href = "?"+Date.now()+"#/home.html";
        // chrome.app.window.current().close();
        // chrome.app.window.create("home.html", {

        //   'outerBounds': {
        //   'width': window.screen.availWidth-40,
        //   'height': window.screen.availHeight-50
        //   },
        //   'resizable':true,
        // });
      }
      else
      {
        document.querySelector('h3#errorMsg').innerHTML = resultData.data.message;
      }
    }
  });

  xhr.open("POST", "http://127.0.0.1:5000/schools/signin");
  xhr.send(data);
}

1 个答案:

答案 0 :(得分:0)

可能有多种因素在起作用,但是如果不看代码示例就很难分辨。您可以用示例来更新您的问题吗?

但是在一般意义上:

您应将事件监听器嵌套在另一个事件监听器中,以确保页面已加载:

You may need an appropriate loader to handle this file type.

如果仍然不起作用,则需要检查API中的回调函数。由于您要更新当前的标签URL,因此您可能要使用此处列出的解决方案之一:How to modify current url location in chrome via extensions