禁用 Chrome 自动填充

新手上路,请多包涵

我在几个表单上遇到了 chrome 自动填充行为的问题。

表单中的字段都有非常常见和准确的名称,例如“电子邮件”、“姓名”或“密码”,并且它们还设置了 autocomplete="off"

自动完成标志已成功禁用自动完成行为,当您开始输入时会出现一个值下拉列表,但没有更改 Chrome 自动填充字段的值。

这种行为是可以的,除非 chrome 错误地填充了输入,例如用电子邮件地址填充电话输入。客户对此有所抱怨,因此已证实它在多种情况下都会发生,而不是我在我的机器上本地完成的某种结果。

目前我能想到的唯一解决方案是动态生成自定义输入名称,然后在后端提取值,但这似乎是解决此问题的一种非常 hacky 的方法。是否有任何标签或怪癖会改变可用于解决此问题的自动填充行为?

原文由 templaedhel 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 446
1 个回答

2022 年 4 月: autocomplete="off" 在 Chrome 中仍然不起作用,我认为在查看与该问题相关的 Chromium 错误(可能仅适用于密码字段)后它永远不会起作用。我看到 2014 年 报告的问题以“WontFix”的形式关闭,而问题仍在讨论中 [1] [2] 。据我所知,Chromium 团队认为 autocomplete="off" 没有有效的用例。

总的来说,我仍然认为这两种极端策略(“总是尊重自动完成=关闭”和“从不尊重自动完成=关闭”)都不是好的。

https://bugs.chromium.org/p/chromium/issues/detail?id=914451#c66

他们的印象是网站不会正确使用它并决定不应用它,提出以下建议:

如果您想禁用自动填充,我们的建议是利用自动完成属性为您的字段赋予语义。如果我们遇到不认识的自动完成属性,我们不会尝试填充它。

例如,如果您的 CRM 工具中有一个地址输入字段,您不希望 Chrome 自动填充,您可以赋予它相对于您所要求的内容有意义的语义:例如 autocomplete=“new-user -街道地址”。如果 Chrome 遇到这种情况,它不会尝试自动填充该字段。

https://bugs.chromium.org/p/chromium/issues/detail?id=587466#c10

虽然这个“建议”目前对我有用,但它可能并不总是正确的,而且看起来团队正在进行实验,这意味着自动完成功能可能会在新版本中发生变化。

我们不得不诉诸于此是愚蠢的,但唯一可靠的方法是尽可能地尝试和混淆浏览器:

  • 在不向浏览器泄露任何信息的情况下命名您的输入,即 id="field1" 而不是 id="country"

  • 设置 autocomplete="do-not-autofill" ,基本上使用任何不会让浏览器将其识别为可自动填充字段的值。


2021 年 1 月: autocomplete="off" 现在确实按预期工作(在 Chrome 88 macOS 上测试)。

为此,请确保将您的输入标签包含在表单标签中


2020 年 9 月: autocomplete="chrome-off" 禁用 Chrome 自动填充。


原始答案,2015 年:

对于新的 Chrome 版本,您只需在密码字段中 autocomplete="new-password" 即可。我已经检查过了,工作正常。

在此讨论中从 Chrome 开发人员那里得到了提示: https ://bugs.chromium.org/p/chromium/issues/detail?id=370363#c7

PS 请注意,Chrome 将尝试根据名称、ID 和它可以在该字段周围获取的任何文本内容(包括标签和任意文本节点)推断自动填充行为。如果在上下文中有像 street-address 这样的自动完成标记,Chrome 将自动填充它。启发式可能会非常混乱,因为它有时只会在表单中有其他字段时触发,或者如果表单中的字段太少则不会触发。另请注意 autocomplete="no" 似乎可以工作,但 autocomplete="off" 不会因为历史原因。 autocomplete="no" 你是在告诉浏览器这个字段应该作为一个名为 "no" 的字段自动完成。如果您生成唯一的随机 autocomplete 名称,您将禁用自动完成。

如果您的用户访问了不良表单,他们的自动填充信息可能已 _损坏_。让他们手动进入并在 Chrome 中修复他们的自动填充信息可能是他们采取的必要行动。

原文由 tibalt 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题