使用onclick时Electron似乎找不到我的功能

时间:2019-04-04 09:48:47

标签: javascript html node.js electron

问题

我正在为考试创建一个用于实时聊天的应用程序。到目前为止,一切都进行得很好。出于某种原因,即使功能显然在我的代码中,电子也无法找到功能。

代码

/*
  * login()
  */

 async function login() {

   var userName = document.getElementsByName("userName");
   var password = document.getElementsByName("password");

   if(validateForm('login')) {
     var sql     = "SELECT * FROM db.users WHERE ?? = ?";
     var inserts = ["userName", userName];
     sql         = mysql.format(sql, inserts);

     connResult = await conn(sql);

     var dbUsername;
     var dbPassword;
     var autologin;

     if(connResult === 'resolved') {
       dbUserName = result[0]["userName"];
       dbPassword = result[0]["password"];
     } else {
       console.log(connResult);
     }

     if(document.getElementsByName("autoLogin").checked) {
       autoLogin = true;
     } else {
       autoLogin = false;
     }

     if(verifyUser(userName, password, dbUserName, dbPassword)) {
       storeUser(connResult, autoLogin);
       if(await fetchUserData(userName)) {
         mainProcess.createMain();

         window = remote.getCurrentWindow

         window.close();
       }
     }
   }
 };

 /*
  * verifyUser()
  */

 function verifyUser(userName, password, dbUserName, dbPassword) {

   if(compare(dbUserName, userName)){
     console.log("UserName exists");

     if(compare(dbPassword, password)) {
       console.log("password exists");
       return true;

     } else {
       console.log("Wrong password");
       document.getElementById("formWarning").innerHTML
       return false;

     }
   } else {
     console.log("userName doesn't exist");
     return false;

   }
 };

这是HTML:

<button id="loginButton" onclick="login()" class="buttonMedium">Login</button>

通过onclick运行功能login()时出现以下错误:

“未捕获的TypeError:登录不是函数”

当我在开发控制台中输入login()时:

“未捕获(承诺)TypeError:无法读取未定义的属性'占位符'”

我也遇到了最后一个错误,因为文档无法“通信”。它正在尝试访问我的html中的表单,由于某种原因它无法读取占位符。

正如我提到的,以前一切正常。我不知道哪里出了问题。希望你们能帮助我。

1 个答案:

答案 0 :(得分:0)

需要脚本意味着它具有自己的上下文。假设您的代码位于html文件底部所需的脚本中:

<script>
      require('./index.js')
</script>

按如下所示将功能关联到按钮:

document.getElementById('loginButton').addEventListener('click', login);

记住那之后,您还不需要HTML上的“ onclick”属性:

<button id="loginButton" class="buttonMedium">Login</button>