Chrome 66浏览器如何禁用文本输入框自动完成功能?
Chrome 66+ 禁用文本输入框自动完成的可行方案
我太懂这种困扰了——Chrome 66之后对自动填充的逻辑做了调整,之前的autocomplete="off"和autocomplete="new-password"确实失效了。给你分享几个社区验证过的有效方法:
使用随机的autocomplete属性值
Chrome现在只会识别它内置的一些autocomplete值(比如username、email),如果你设置一个完全随机的字符串,它就不会触发自动填充了。示例代码:<input type="text" name="user-account" autocomplete="custom-random-string-789">利用readonly属性动态切换
页面加载时先把输入框设为readonly,当用户点击输入框(获得焦点)时再移除readonly属性。Chrome不会对readonly的输入框进行自动填充,这个方法很实用:<input type="text" name="user-email" readonly onfocus="this.removeAttribute('readonly');">针对密码框的隐藏输入框 trick
如果是密码框,可以在真实密码框前面加一个隐藏的同名密码输入框,让Chrome把自动填充的内容放到隐藏框里,真实的密码框就不会被填充了,再配合autocomplete="new-password"效果更好:<input type="password" name="user-pass" style="display: none;"> <input type="password" name="user-pass" autocomplete="new-password">
这些方法都是在Chrome 66及更高版本测试过有效的,你可以根据自己的场景选择合适的方案~
内容的提问来源于stack exchange,提问作者jojo____
相关产品推荐
相关产品推荐

