自动完成关闭还是假?

新手上路,请多包涵

最近我遇到了一个问题,我想在所有浏览器中禁用自动完成。

Chrome 在设置中有一项新功能,您可以在其中添加卡号。并且要求也禁用它。

在所有浏览器中起作用的是在表单级别执行此操作 autocomplete=false

但这不符合 w3 规则,他们强制要求 autocomplete=off|on

有人可以向我解释为什么 false 适用于所有浏览器吗?

即使是 ie8,所有 firefox,safari 等,但它不兼容。

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

阅读 234
2 个回答

你是对的。将自动完成属性设置为“关闭”不会在较新版本的 Chrome 中禁用 Chrome 自动填充。

但是,您可以将自动完成设置为“on”或“off”(“false”、“true”、“nofill”)以外的任何值,这将禁用 Chrome 自动填充。

这种行为可能是因为 autocomplete 属性需要一个“on”或“off”值,如果你给它别的东西,它什么也不做。因此,如果您给它的值不是这些值,自动填充就会崩溃/什么都不做。

在当前版本的 Chrome 中,已经发现将自动完成属性设置为“关闭”现在确实有效。

此外,我发现只有在表单的每个 <input> 标记中设置自动完成属性时才有效。

此处 的 Chromium 错误列表中已经对这种歧义做出了回应。

免责声明:这在 Chrome 版本 47.0.2526.106(64 位)中被发现是正确的

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

Chrome 版本 72.XX 之后:

Chrome 忽略 autocomplete="off" autocomplete="no-fill"autocomplete="randomText" 在字段和表单级别。

我发现的唯一选择是通过欺骗 Chrome 来填充虚拟文本框和密码上的自动填充,然后将它们从用户视图中隐藏来遵循变通方法。

请记住使用 style="display: hidden"style="visibility: hidden" 的旧方法也将被忽略。

使固定:

因此,创建一个 DIVheight: 0px;overflow:hidden 仍然会呈现 HTML 元素,但将它们隐藏在用户视图之外。

示例代码:

 <div style="overflow: hidden; height: 0px;background: transparent;" data-description="dummyPanel for Chrome auto-fill issue">
        <input type="text" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyUsername"></input>
        <input type="password" style="height:0;background: transparent; color: transparent;border: none;" data-description="dummyPassword"></input>
</div>

只需在 HTML 表单中添加上面的 div 就可以了!

原文由 Adheep Mohamed Abdul Kader 发布,翻译遵循 CC BY-SA 4.0 许可协议

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