use*_*270 22 html forms html5 google-chrome
我知道Stackoverflow上有一个类似的问题,但没有一个解决方案适合我.
<form autocomplete="off" id="search_form" method="post" action="">
<input autocomplete="off" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我同时将autocomplete=off
表单和输入字段放在一起,但Google Chrome仍会显示此自动填充列表.这在Firefox和Safari等其他浏览器中不会发生.
除了autocomplete=off
使用表单标签之外的任何其他解决方案?
Kei*_*ith 21
这是由Chrome做出的设计决定(可以说任何Chrome用户都希望这种行为).
这就是谷歌称之为选区优先权的原因:
有一些方法可以解决这些问题,但很可能会在未来的Chrome版本中修复这些问题,因为Chrome开发人员认为他们的行为是正确的并且您的解决方法是错误的.
即使您的解决方法确实有效,它也会为用户创建令人困惑的行为 - 他们希望自动填充根据其设置工作.
许多用户已经选择忽略带有插件或脚本的应用程序自动完成设置,这些设置只删除页面中的任何autocomplete = off - 他们已经有了这个选择.
假设自动填充功能可以正常工作并对此进行说明,那么您最好进行设计.
当网站不记得我的密码并覆盖那些与浏览器扩展有关的密码时,我个人讨厌它.然而,我也为我的工作创建应用程序,并且召回密码被视为安全风险,因为用户可能会将其机器解锁.在我个人看来,没有锁定他们的机器的用户是本地IT而不是应用程序的问题,并且如果他们的用户不可信,本地IT可以禁用所有Web应用程序的所有密码自动完成.
不幸的是,通过安全检查,一些应用程序仍然必须禁用自动完成,有办法做到这一点,但它们都很可怕.第一个黑客是将密码输入全新:
<input type="hidden" name="password" id="realPassword" />
<input type="password" name="{randomly generated}"
onchange="document.getElementById('realPassword').value = this.value" />
Run Code Online (Sandbox Code Playgroud)
我已将所有内容简化为内容,但这应该让您了解黑客 - 没有插件或浏览器可以使用全新的名称自动填充输入.
如果您正确构建ARIA和标签(这样可以让浏览器/扩展程序找到并自动填充标签的输入),此解决方案就会中断.
所以选项2,也是可怕的,是等到自动完成功能被触发后再将空白字段清空:
<input type="text" name="username"
onchange="window.setTimeout(function() {
document.getElementById('password').value = '';
}, 100)" />
<input type="password" id="password" />
Run Code Online (Sandbox Code Playgroud)
就像我说的那样,讨厌.
小智 6
它可能是谷歌Chrome上的一个错误,你不能通过创建一个隐藏的输入作弊.自动完成功能将获得第一个输入文本以填充数据.
<form autocomplete="off" id="search_form" method="post" action="">
<input type="text" style="display:none" />
<input autocomplete="off" type="text" />
</form>
Run Code Online (Sandbox Code Playgroud)
这似乎是 Google Chrome 中经常出现的问题,尽管在表单中添加自动完成功能在我的构建中确实有效。也许在新版本中它不再存在了。
这是一个黑客行为。为您的输入指定一个 id,例如foo
,并在 JavaScript 中:
if (navigator.userAgent.toLowerCase().indexOf('chrome') >= 0) {
setTimeout(function () {
document.getElementById('foo').autocomplete = 'off';
}, 1);
}
Run Code Online (Sandbox Code Playgroud)
检查这是否适合您。唯一的缺点是,对于那些使用 Chrome并禁用 JavaScript 的人来说,该字段仍然会自动完成。
归档时间: |
|
查看次数: |
59979 次 |
最近记录: |