广州总部电话:020-85564311
广州总部电话:020-85564311

广州网站建设-小程序商城开发-广州小程序开发-企业微信开发公司-网站建设高端品牌-优网科技

20年
互联网应用服务商
请输入搜索关键词
知识库 知识库

优网知识库

探索行业前沿,共享知识宝库

解决autocomplete=off在Chrome中不起作用的方法
发布日期:2025-05-07 15:48:14 浏览次数: 820 来源:web前端开发

我们都知道autocomplete属性是表单字段中的HTML5新属性,该属性有两种状态值,分别为"on" 和 "off",该属性可省略:省略属性值后默认值为"on",也可以省略属性名,直接写入关键字on或off。

网站项目中,有登录和注册的弹框,在除chrome的浏览器中一切都ok,一旦在谷歌浏览器中,问题来了:首先从登录弹框中登录成功,chrome会弹出是否保存密码的提示框,点击保存密码按钮后,就会出现表单自动填充的问题,如图,如果用户和密码都自动填充,那么在某些网站中将非常的不安全,如支付网站。

如何解决呢,我们提供以下5种方法:

1、修改value值(目前已失效,随着chrome版本的升级,现今版本已不再能获取到value值了,所以无法对其进行操作,貌似chrome自动填充的表单的value值是存在 DocumentFragment里的div中的,暂不知道怎么去处理,等待大神告知)

if(navigator.userAgent.toLowerCase().indexOf("chrome") != -1){  
var inputers = document.getElementsByTagName("input");  
for(var i=0;i<inputers.length;i++){  
if((inputers[i].type !== "submit") && (inputers[i].type !== "password")){  
                    inputers[i].value = " ";  
                }  
            }  
setTimeout(function(){  
for(var i=0;i<inputers.length;i++){  
if(inputers[i].type !== "submit"){  
                        inputers[i].value = "";  
                    }  
                }  
            },100)  
        }

2、 修改disabled属性 

if(navigator.userAgent.toLowerCase().indexOf("chrome") != -1){  
var inputers = document.getElementsByTagName("input");  
for(var i=0;i<inputers.length;i++){  
if((inputers[i].type !== "submit") && (inputers[i].type !== "password")){  
                        inputers[i].disabled= true;  
                    }  
                }  
setTimeout(function(){  
for(var i=0;i<inputers.length;i++){  
if(inputers[i].type !== "submit"){  
                            inputers[i].disabled= false;  
                        }  
                    }  
                },100)  
            }

3、 去除输入框的name和id属性  

if(navigator.userAgent.toLowerCase().indexOf("chrome") != -1){  
var inputers = document.getElementsByTagName("input");  
for(var i=0;i<inputers.length;i++){  
if((inputers[i].type !== "submit") && (inputers[i].type !== "password")){  
var input = inputers[i];  
var inputName = inputers[i].name;  
var inputid = inputers[i].id;  
                        inputers[i].removeAttribute("name");  
                        inputers[i].removeAttribute("id");  
setTimeout(function(){  
                            input.setAttribute("name",inputName);  
                            input.setAttribute("id",inputid);  
                        },1)  
                    }  
                }  
            }

4、可以在不需要默认填写的input框中设置 autocomplete="new-password"

网上咱没有找到对其详细解释,但是发现163邮箱的登录注册是这么用的

5、修改readonly属性

<input type="password"readonly onfocus="this.removeAttribute('readonly');"/>


本文完~


优网科技,优秀企业首选的互联网供应服务商

优网科技秉承"专业团队、品质服务" 的经营理念,诚信务实的服务了近万家客户,成为众多世界500强、集团和上市公司的长期合作伙伴!

优网科技成立于2001年,擅长网站建设、网站与各类业务系统深度整合,致力于提供完善的企业互联网解决方案。优网科技提供PC端网站建设(品牌展示型、官方门户型、营销商务型、电子商务型、信息门户型、DIY体验、720全景展厅及3D虚拟仿真)、移动端应用(手机站APP开发)、微信定制开发(微信官网、微信商城、企业微信)、微信小程序定制开发等一系列互联网应用服务。


我要投稿

姓名

文章链接

提交即表示你已阅读并同意《个人信息保护声明》

专属顾问 专属顾问
扫码咨询您的优网专属顾问!
专属顾问
马上咨询
扫一扫马上咨询
扫一扫马上咨询

扫一扫马上咨询