JavaScript检测浏览器自动填充
您如何判断浏览器是否自动填充了文本框?尤其是用户名和密码框可自动填充页面加载。
我的第一个问题是页面加载序列何时发生?是在document.ready之前还是之后?
其次,我该如何使用逻辑找出这种情况是否发生?它不是我想阻止这种情况发生,只是挂接到事件中。最好是这样的:
if (autoFilled == true) {} else {
}
如果可能的话,我希望看到一个jsfiddle显示您的答案。
回答:
问题是自动填充由不同的浏览器处理。有些派遣变更事件,有些则没有。因此,几乎不可能挂接在浏览器自动完成输入字段时触发的事件。
更改不同浏览器的事件触发器:
对于用户名/密码字段:
Firefox 4,IE 7和IE 8不会调度change事件。
- Safari 5和Chrome 9确实会调度更改事件。
对于其他表单字段:
IE 7和IE 8不会调度change事件。
- 当用户从建议列表中选择一个值并跳出字段时,Firefox 4确实调度了更改更改事件。
- Chrome 9不会调度更改事件。
- Safari 5确实调度了change事件。
最好的选择是禁用在表单中使用autocomplete="off"
的表单的自动完成功能,或者定期轮询以查看其是否已填写。
关于您是否在文档上填充文档或文档之前的问题,请再次阅读,不同的浏览器甚至不同的版本都有不同。对于用户名/密码字段,仅当您选择用户名时才填写密码字段。因此,如果您尝试附加到任何事件,那么总共会有一个非常混乱的代码。
以上是 JavaScript检测浏览器自动填充 的全部内容, 来源链接: utcz.com/qa/430099.html