我是开发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);
}
答案 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