【发布时间】:2011-08-24 06:04:21
【问题描述】:
我有一个登录表单,我需要在其中执行以下操作:
- 允许自动填充,以便用户无需输入即可继续登录
- 检测表单上是否使用了自动填充,因此当用户稍后尝试访问需要登录而不使用自动填充的站点部分时,我只会提示用户再次登录(使用不同版本的登录表单,而不是允许自动填充)如果他们在第一个表单上使用了自动填充
目前我还没有找到一种方法来可靠地检测是否使用了自动填充(IE、Firefox、Chrome、Google 工具栏等 --> 任何无需用户输入而填写表单字段的机制都可以计算在内这里作为“自动填充”)。所以现在我只是让用户在没有自动填充的情况下首次登录(因为这是一个重要的业务需求),然后当他们到达网站的敏感部分时提示他们从禁用自动填充的表单登录,即使他们有事实上,在第一个表单上输入了他们的用户名和密码。
如果有人找到了一种可靠的方法来检测(而不是阻止)所有形式的自动填充,我很想听听。
谢谢!
【问题讨论】:
-
附注一种方法的粗略想法是每次在任何输入字段中发生击键时使用javascript记录(测量手动输入了多少信息,确保处理用户单击删除或退格时的特殊情况)然后检查提交时输入字段中存在多少字符。如果数字不同,这似乎表明已使用自动填充。但这只是一个未经测试的想法,这是否适用于 IE6+、FF3+、Chrome、Safari 等还有待观察。假设所有输入的默认值为空。
-
对击键计时 + 检查输入长度与击键次数(在考虑退格、删除等之后)将是一种不完美的方法。但它仍然不是万无一失或完美的。我们将无法区分自动填充的数据和粘贴的数据(来自剪贴板)。
标签: forms javascript-events detect autofill