Как загрузить один HTML-файл из другого HTML-файла при нажатии на кнопку в JavaScript? - PullRequest
0 голосов
/ 10 сентября 2018

Я новичок в разработке приложения 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 голосов
/ 10 сентября 2018

В игре может быть несколько факторов, но это трудно понять, не увидев пример вашего кода. Не могли бы вы обновить вопрос с примерами?

Однако в общем смысле:

Вы должны вложить свои прослушиватели событий в другой прослушиватель событий, который обеспечивает загрузку страницы:

//event listener to ensure page has loaded
document.addEventListener('DOMContentLoaded', function() {
    // event listener for click of login button
var loginButtonClick = document.getElementById('login_button_ID');
loginButtonClick.addEventListener('click', function() {
    login();  //This is the function that calls the login API
});;

Если это все еще не работает, вам нужно проверить функцию обратного вызова в вашем API. Поскольку вы обновляете URL-адрес текущей вкладки, вы можете использовать одно из перечисленных ниже решений: Как изменить текущее местоположение URL-адреса в Chrome с помощью расширений

...