繁体   English   中英

当我刷新页面时 JavaScript 停止工作

[英]JavaScript stops working when I refresh page

我有这段 JavaScript 代码:

var input = document.getElementById("password_field");
input.addEventListener("keyup", function(event) {
  if (event.keyCode === 13) {
   event.preventDefault();
   document.getElementById("login").click();
  }
});

firebase.auth().onAuthStateChanged(function(user) {
    if (user) {
        document.getElementById("user_div").style.display = "block";
        document.getElementById("login_div").style.display = "none";

        var user = firebase.auth().currentUser;

        if(user != null) {
            var email_id = user.email;
            var email_verified = user.emailVerified;
            document.getElementById('user_para').innerHTML = "You are logged in as<strong> " + email_id + "</strong>.";
            if (email_verified === false) {
                document.getElementById('user_verified').innerHTML = "<strong>You are not verified. Please check for an email from perason for a verification link. You will not be able to access anything without verification.";
            } else {
                document.getElementById('user_verified').innerHTML = "";
                document.getElementById('sandboxaccess').style.display = "block";
            }
        }
      
      
    } else {
        document.getElementById("user_div").style.display = "none";
        document.getElementById("login_div").style.display = "block";
    }
  });

function login () {
    var userEmail = document.getElementById('email_field').value;
    var userPass = document.getElementById('password_field').value;

    firebase.auth().signInWithEmailAndPassword(userEmail, userPass).catch(function(error) {
        // Handle Errors here.
        var errorCode = error.code;
        var errorMessage = error.message;
        window.alert("Error: " + errorMessage);
      });


    
}

function logout() {
    firebase.auth().signOut();
}

它最初工作正常,但是当我刷新页面时,所有 JavaScript 都停止工作。 它在 Apache localhost 上运行得非常好(刷新也可以在 localhost 上运行)。 解决这个问题的方法是什么?

这是刷新前:

刷新前

这是刷新后的样子:

刷新后

注销按钮在两者中。

控制台上的错误

我认为代码是在加载 DOM 之前执行的。
这个怎么样:

document.addEventListener('DOMContentLoaded', function (){
  // your code
});

从你的程序中删除这行代码:

var user = firebase.auth().currentUser

您已经有一个user对象作为回调函数的参数。 此处返回的 currentUser 实际上可能错误地为 null 并覆盖了传入的正确用户。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM