Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript可以';t读取Chrome';s自动填充密码字段,直到用户与页面交互为止_Javascript_Google Chrome - Fatal编程技术网

JavaScript可以';t读取Chrome';s自动填充密码字段,直到用户与页面交互为止

JavaScript可以';t读取Chrome';s自动填充密码字段,直到用户与页面交互为止,javascript,google-chrome,Javascript,Google Chrome,请参见此处发生的问题: 问题是,在用户与页面交互之前(在本例中,我只是在密码字段内单击),如果由Chrome自动填充,JavaScript无法读取密码字段。这是我这边的吗?这是Chrome内置的安全功能吗 为了排除某些情况,以下是我尝试过但没有成功的方法: 使用香草JS 以编程方式触发页面上某个位置的单击 将任何输入字段的焦点放在页面加载上 在几百毫秒的超时之后,将任何输入字段的焦点放在页面加载上 解决了我自己的问题 如果我将所有内容都放在表单中,而不是侦听“enter”键下事件,我只是侦听

请参见此处发生的问题:

问题是,在用户与页面交互之前(在本例中,我只是在密码字段内单击),如果由Chrome自动填充,JavaScript无法读取密码字段。这是我这边的吗?这是Chrome内置的安全功能吗

为了排除某些情况,以下是我尝试过但没有成功的方法:

  • 使用香草JS
  • 以编程方式触发页面上某个位置的单击
  • 将任何输入字段的焦点放在页面加载上
  • 在几百毫秒的超时之后,将任何输入字段的焦点放在页面加载上
    • 解决了我自己的问题


      如果我将所有内容都放在表单中,而不是侦听“enter”键下事件,我只是侦听表单上的“submit”事件,那么JavaScript可以读取我的密码字段的值。

      在用户与页面交互之前,无法读取值

      原因是,事件具有isTrusted属性。“事件接口的isTrusted只读属性是一个布尔值,当事件由用户操作生成时为true,当事件由脚本创建或修改或通过EventTarget.dispatchEvent()调度时为false”(从)

      Chrome autofill值只有在isTrusted=true事件下才可读


      注意:window.scroll()始终为isTrusted=true。但是它不能使自动填充值可读

      这看起来很像。但你到底想做什么?如果您试图在用户单击“登录”按钮时获取密码,那么您可以侦听“单击”事件并获取密码输入的值。不,不是通过“登录”按钮。我自动聚焦用户名字段,所以很多用户尝试点击“回车”登录。当尝试获取密码字段的值时,当只点击“回车”时,该字段为空。我知道我可以删除自动对焦,强迫他们点击登录,但我不想让我的用户更难解决这个问题。