在Chrome 63中停用自动填充功能

Cel*_*ydy 53 html google-chrome

我刚刚将浏览器更新为Chrome版本63.0.3239.84(官方版本)(64位).

然后我继续访问我的网站,我有一个输入框autocomplete='off',但我仍然得到以下内容:

在此输入图像描述

(你可以在下面看到我内置的建议下拉菜单)

这从来就不是这样的.没有其他改变!

为什么会这样?这是新版Chrome中的错误吗?我已尝试过所有其他建议,autocomplete="false"或将autocomplete = off应用于表单.我甚至试图在页面加载后用jquery应用这些,但也没有运气.

我已经在不同操作系统上使用最新版本的chrome在多台机器上进行了测试.问题依然存在.

Sol*_*ieg 48

2018年2月更新:

感谢@JamesNisbet在评论中指出这一点.

根据Chrome团队的说法,autocomplete ="off"和autocomplete ="false"将被忽略.这不是Chrome中的暂时回归.

Chrome会尝试在自动填充时自动填充符合WHATWG标准的任何表单字段.除了一个例外,它们忽略"off"和"false"值.

总之,要禁用自动填充,请使用autocomplete属性,其值不在WHATWG列表中.

如果您认为此Chromium线程中 Chrome不应忽略autocomplete ="off"的原因.


看起来像Chrome 63中的可能回归.在Chrome的原始自动填充文档中:

过去,许多开发人员会在其表单字段中添加autocomplete ="off",以防止浏览器执行任何类型的自动完成功能.虽然Chrome仍然会将此标记视为自动填充数据,但它不会将其视为自动填充数据.那么什么时候应该使用autocomplete ="off"?一个例子是你为搜索实现了自己的自动完成版本.

https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill

它们确实区分了自动完成和自动填充,但不清楚它们是不同的.

Chrome,Safari和Edge都试图实施自动填充,但没有明确的标准.它们查看name属性而不是显式的标准化属性.

现在autocomplete="something-new"是一个很好的解决方法,虽然在语法上它是没有意义的.这似乎有效,因为浏览器无法理解它.

  • 我已经了解到,自动填充是一个完全不同的东西,Chrome根本不会让你禁用.自动填充功能由Chrome为您存储的数据组成,例如地址信息和电子邮件地址.自动填充只是将频繁输入的信息重新输入表单的"有用"方式.您可以禁用后者,但不能禁用前者.`autofill!== autocomplete` (5认同)
  • 2020 年更新:`autocomplete="off"` 在 Chrome 中适用于我。 (2认同)

Ere*_*bus 26

我们尝试了autocomplete ="false"和autocomplete ="off",但都没有工作.但Chrome无法理解的内容,例如autocomplete ="disabled",似乎确实有效.奇怪!

更新:此功能从Chrome 72开始运行.

  • 不在Chrome 68,macOS中工作. (4认同)
  • 从Chrome 68.0.3440.106版(正式版本)(64位)开始,autocomplete =“ off”现在可以再次使用 (2认同)
  • 在MacOs上,chrome无法正常运行。 (2认同)

Bra*_*ito 14

2019 autocomplete="disabled"Chrome 72开始,它似乎又有效了.


由于很多人在没有阅读评论的情况下 已经下降了 :2018年以来铬的作品不再有用/相关的63+相关:https://bugs.chromium.org/p/chromium/issues/detail id = 58746

使用autocomplete ="false"而不是autocomplete ="off"有效,您可以从Chrome小组中了解更多内容,了解他们为什么这么做


这里:

https://www.chromium.org/developers/design-documents/form-styles-that-c​​hromium-understands https://bugs.chromium.org/p/chromium/issues/detail?id=468153 https:// groups.google.com/a/chromium.org/forum/#!topic/chromium-dev/zhh7hCip5c https://developers.google.com/web/updates/2015/06/checkout-faster-with-autofill

  • 这些链接中没有关于autocomplete ="false"的信息.而且它也不起作用.我已经在输入和表单上尝试了它. (5认同)
  • 不知道最近的投票是什么,这篇文章是从它起作用的时候,现在它没有,不是我的错,谷歌不能接受来自数千名开发者的反馈. (4认同)
  • 就我而言,Chrome版本73.0.3683.75(官方内部版本)(64位),macOS 10.14.3似乎不起作用。坦白地说,在整个问题中,没有提供的答案似乎有效。我还在72中测试了此修复程序,并在此问题中测试了许多其他变通办法,但似乎在这两个版本中都没有工作。但是,将`readonly =“ readonly”`添加到字段中,然后在一两秒钟后用JS删除即可。绝对不喜欢此解决方案,但它确实有效。 (3认同)
  • autocomplete =“ disabled”对我不起作用版本72.0.3626.119(正式版本)(64位)Windows 10 (2认同)

小智 6

看起来 chrome 会寻找最接近输入的“标签”html 标签,并分析标签的值/html 以影响输入的自动填充。

我发现禁用输入自动填充的最干净的解决方法是:

<label for="">Country</label>
<label for="" style="display: none;">hidden label to mislead chrome autocomplete</label>
<input ... />
Run Code Online (Sandbox Code Playgroud)


ngr*_*grn 6

我已经设法在Chrome版本65.0.3325.162(官方版本)(64位)中获得了工作"黑客".

我必须渲染一个输入字段 - 隐藏所以它不会影响我的页面:

<input style="display:none;"/>
Run Code Online (Sandbox Code Playgroud)

然后我渲染我的密码输入字段:

<input type="password" autocomplete="new-password" />
Run Code Online (Sandbox Code Playgroud)

所以我的表格最终看起来像:

<form>
    <input style="display:none;" />
    <input type="password" autocomplete="new-password" />
    <input type="submit" />
</form>
Run Code Online (Sandbox Code Playgroud)

重要的是,您不能在密码类型输入元素中添加名称或ID属性,并且必须具有autocomplete ="new-password"