Javascript 使用chrome autofill检测何时签出表单

Javascript 使用chrome autofill检测何时签出表单,javascript,html,google-chrome,autofill,Javascript,Html,Google Chrome,Autofill,我的目标是每当我的客户使用google chrome的自动填充功能()填写表单时,触发一个web事件 我相信这是不可能的,除非谷歌提供了一个插件/api开箱即用,表明自动填充配置文件存在,并已被用户选择填写他的表单。同龄人能对此有更多的了解吗 [编辑] 请注意,这种自动填充(通过chrome)是由用户触发的,而不是我们通常看到的浏览器所做的(比如用户名/密码,在页面加载时发生)。因此,许多其他答案中规定的java脚本解决方案在这里可能不起作用。我的问题针对google chrome维护的自动填充

我的目标是每当我的客户使用google chrome的自动填充功能()填写表单时,触发一个web事件

我相信这是不可能的,除非谷歌提供了一个插件/api开箱即用,表明自动填充配置文件存在,并已被用户选择填写他的表单。同龄人能对此有更多的了解吗

[编辑] 请注意,这种自动填充(通过chrome)是由用户触发的,而不是我们通常看到的浏览器所做的(比如用户名/密码,在页面加载时发生)。因此,许多其他答案中规定的java脚本解决方案在这里可能不起作用。我的问题针对google chrome维护的自动填充配置文件,以帮助人们更快地签出表单。

来源:

解决办法

底线是JavaScript代码不能依赖于更改事件。 如果代码需要知道某个字段的值何时更改,则有两种方法 选择:

  • 让一些JavaScript代码定期运行,检查所有字段的值,并在发现值已更改时调用更改处理程序
  • 通过在元素上添加autocomplete=“off”来禁用自动完成。这项技术从IE 5(1999年3月)和Netscape 6.2(2001年10月)开始就受到浏览器的支持,现在已经进入HTML5
  • 间隔解决方案(1)看起来相当不错,因为HTML5中的安全间隔时间是4ms,参见


    因此,您可能会假设,在4ms中填充一个输入是手动填充,而填充多个输入是自动填充。

    我认为建议的解决方案仅将人工填充和自动填充数据区分开来。但是,当selenium脚本填充表单时,它可能无法调用,而不是chrome autofill(selenium脚本可以具有惊人的表单填充速度)。只是想知道是否有一种特定的方式,我们可以通过它来确保表单仅由chrome自动填充功能自动填充。