浏览器表单自动填充问题【兼容性解决方案】

Chrome浏览器表单自动填充问题解决方案

stackoverflow: chrome-ignores-autocomplete-off

更多参考

该问题是关于Chrome浏览器自动填充的功能,Chrome团队对此给出了他们的立场-https://bugs.chromium.org/p/chromium/issues/detail?id=468153#c164

简单来说,有两种情况——

  • 【案例1】:你的input类型不是password。在这种情况下,解决方案很简单,分为三个步骤。

    • name属性添加到input

    • name不应以电子邮箱或用户名之类的值开头,否则Chrome任然会显示下拉列表。例如,name="emailToDelete"显示下拉菜单,但name="to-delete-email"不显示。同样适用于autocomplete属性。

    • 添加autocomplete属性,并添加对你有意义的值,例如,new-field-name

      它看起来像这样,在你的余生中你不会再看到这个输入框的自动填充。

      <input type="text/number/something-other-than-password" name="x-field-1" autocomplete="new-field-1" />
      
  • 【案例2】:input的类型是password

    • 好吧,这种情况下,无论你进行任何实验,Chrome都会想你显示管理密码/使用现有密码的下拉菜单。Firefox也会有类似的现象,所以其他主要浏览器也是如此。1
    • 在这种情况下,如果你真的想阻止用户查看管理密码/使用现有密码的下拉菜单,你将不得不使用JavaScript来切换输入类型。

针对于type=password的解决方案,建议使用type=text来代替

参考链接:

  • https://developer.mozilla.org/zh-CN/docs/Web/HTML/Attributes/autocomplete

  • https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/Input#attr-autocomplete

  • https://stackoverflow.com/questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tags?page=2&tab=scoredesc#tab-top

  • https://stackoverflow.com/questions/67602061/webkit-text-security-disc-css-property-is-not-working-in-firefox-browser

    https://stackoverflow.com/a/67603338/19379375

@font-face{
  font-family: text-security-disc;
  src: url("https://raw.githubusercontent.com/noppa/text-security/master/dist/text-security-disc.woff");
}

input.password {
  font-family: text-security-disc;
  -webkit-text-security: disc;
}
<input class="p" type="text">

如果需要将字体文件下载到本地,只需要将URL复制到浏览器地址栏下载,保存到项目目录,然后只需在代码中相对于本地下载的文件更改URL即可。

已验证兼容性:Chrome、Firefox、新版Edge、IE10+


  1. 关于关闭自动补全的详细 MDN 文档- https://developer.mozilla.org/zh-CN/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion ↩︎

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值