将事件侦听器添加到只有 class id 的按钮

Adding event listener to a button which only has class id

我正在尝试添加一个均匀的监听器来登录 LinkedIn 第一页的按钮,如下所示:

<button class="sign-in-form__submit-button" data-tracking-control-name="homepage-basic_signin-form_submit-button" data-tracking-litms="" type="submit">    Sign in        </button>

我正在开发一个密码管理器扩展,我计划在用户单击登录按钮时获取用户名和密码,但是下面的代码不起作用。你能帮忙吗?

document.getElementsByClassName("sign-in-form__submit-button")[0].addEventListener("click", getinputs);

function getinputs(){
username = document.getElementById("session_key").value;
password = document.getElementById("session_password").value;
}

我不确定,因为你没有写完整的代码,但你似乎忘了在用户名和密码

之前写 var
   function getinputs(){
      var username = document.getElementById("session_key").value;
      var password = document.getElementById("session_password").value;
      }

我看到两个错误

  1. 我看到的第一个错误是你在调用函数后声明它
  2. 你用错误的方式称呼它的第二个 getinputs() 你写了 getinputs

事件应该包含您使用它的函数(如果您在调用它之前创建函数,则没有必要,如前所述) 所以我提供两种解决方案:

1- 第一个函数内部事件

 document.getElementsByClassName("sign-in-form__submit-button")[0].addEventListener("click", getinputs , function getinputs(){
    username = document.getElementById("session_key").value;
    password = document.getElementById("session_password").value;
    });

2- 活动之外的第二个:

function getinputs(){
username = document.getElementById("session_key").value;
password = document.getElementById("session_password").value;
}
document.getElementsByClassName("sign-in-form__submit-button")[0].addEventListener("click", getinputs());

我为输入标签使用了另一种类型的事件监听器,它起作用了 感谢你们的努力