解决浏览器会自动填充密码的问题


Posted in Javascript onApril 28, 2017

解决办法是在form上或input上添加autoComplete="off"这个属性。

form表单的属性如下所示:

解决浏览器会自动填充密码的问题

但是这个解决方案在谷歌和火狐上均有bug,下面来一个一个解决。

1.'autocomplete="off"'在Chrome中不起作用解决方案

网站项目中,有登录和注册的弹框,在除chrome的浏览器中一切都ok,一旦在谷歌浏览器中,问题来了:

首先从登录弹框中登陆成功,chrome会弹出是否保存密码的提示框,点击保存密码按钮,

解决浏览器会自动填充密码的问题

然后接着退出账户,

这时打开注册弹框,你会发现注册弹框中用户名和密码也被默认填写进去了(登录弹框中默认填写进去符合逻辑),

解决浏览器会自动填充密码的问题

解决浏览器会自动填充密码的问题

这现象就诡异了,开始各种查,cookie,本地缓存,等等,都解决不了这问题;

查阅后,很多没有这个的解决方案。

1  通常我们会在form表单上加入autocomplete="off" 或者 在输入框中加入autocomplete="off"

<form method="post" action="" name="login" autocomplete="off"> 
</form> 
//或者 
<input id="name" type="text" name="name" maxlength="20" autocomplete="off">

2  但是有一种情况例外,就是表单中有input[type="password"],点击保存密码后,在Chrome浏览器则自动填充了用户名和密码的输入框;为了统一样式,我们需要就对Chrome的问题经行单独处理。

总结了4种解决方案,如下:

1 修改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) 
  }

2 去除输入框的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) 
    } 
   } 
  }

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

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

解决浏览器会自动填充密码的问题

所以就借鉴借鉴咯,测试之后也是可以解决问题的,也是最简单的解决办法,网易给您点个赞!

4 修改readonly属性

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

但Firefox中有个Bug。首次提交后,FF会提示是否记住某某网站的密码,点击“记住”后 input[type=text]设置autocomplete="off"将不起作用。

解决浏览器会自动填充密码的问题

有两种情况:

1,form中没有input[type=password],autocomplete="off"将起作用

2,去掉form,设置input[type=text]的autocomplete也起作用(测试不好用)

3.Firefox则需要使用另一个扩展属性disableautocomplete  (测试也不行)

<input type="text"  disableautocomplete autocomplete="off"  id="number"/>

火狐现在也没有解决的办法,,谁有麻烦告知一下哈。。。。。

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Javascript 相关文章推荐
JS延迟加载(setTimeout) JS最后加载
Jul 15 Javascript
JS模板实现方法
Apr 03 Javascript
用JavaScript实现类似于ListBox功能示例代码
Mar 09 Javascript
Chrome下ifame父窗口调用子窗口的问题示例探讨
Mar 17 Javascript
BootStrap tab选项卡使用小结
Aug 09 Javascript
详解React native全局变量的使用(跨组件的通信)
Sep 07 Javascript
详解vue-cli中的ESlint配置文件eslintrc.js
Sep 25 Javascript
js+html获取系统当前时间
Nov 10 Javascript
webpack多入口文件页面打包配置详解
Jan 09 Javascript
Angular ElementRef简介及其使用
Oct 01 Javascript
layui复选框限制选择个数的方法
Sep 18 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
Jan 08 Javascript
JS实现简单的天数计算器完整实例
Apr 28 #Javascript
jQuery实现jQuery-form.js实现异步上传文件
Apr 28 #jQuery
js实现移动端编辑添加地址【模仿京东】
Apr 28 #Javascript
angularjs中使用ng-bind-html和ng-include的实例
Apr 28 #Javascript
d3.js入门教程之数据绑定详解
Apr 28 #Javascript
jQuery tip提示插件(实例分享)
Apr 28 #jQuery
JS实现动态添加DOM节点和事件的方法示例
Apr 28 #Javascript
You might like
PHP验证信用卡卡号是否正确函数
2015/05/27 PHP
试用php中oci8扩展
2015/06/18 PHP
php生成0~1随机小数的方法(必看)
2017/04/05 PHP
Js实现网页键盘控制翻页的方法
2014/10/30 Javascript
基于node实现websocket协议
2016/04/25 Javascript
fullCalendar中文API官方文档
2017/02/07 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
js实现扫雷小程序的示例代码
2017/09/27 Javascript
vue给组件传递不同的值方法
2018/09/29 Javascript
微信小程序仿通讯录功能
2020/04/09 Javascript
[00:42]《辉夜杯》—职业组预选赛12月3日15点 正式打响
2015/12/03 DOTA
[40:29]2018DOTA2亚洲邀请赛 4.7总决赛 LGD vs Mineski 第一场
2018/04/10 DOTA
Python使用cookielib模块操作cookie的实例教程
2016/07/12 Python
使用Python对SQLite数据库操作
2017/04/06 Python
Python编程实现的简单Web服务器示例
2017/06/22 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
从CentOS安装完成到生成词云python的实例
2017/12/01 Python
简单谈谈Python的pycurl模块
2018/04/07 Python
Python实现将字符串的首字母变为大写,其余都变为小写的方法
2019/06/11 Python
python实现简单俄罗斯方块
2020/03/13 Python
python 进制转换 int、bin、oct、hex的原理
2021/01/13 Python
CSS3只让背景图片旋转180度的实现示例
2021/03/09 HTML / CSS
AmazeUI 平滑滚动效果的示例代码
2020/08/20 HTML / CSS
环法自行车赛官方商店:Le Tour de France
2017/08/27 全球购物
应届毕业生就业自荐信
2013/10/26 职场文书
师德学习感言
2014/01/31 职场文书
优良学风班申请材料
2014/02/13 职场文书
教师开学感言
2014/02/14 职场文书
退休教师欢送会主持词
2014/03/31 职场文书
求职信模板
2014/05/23 职场文书
教师演讲稿开场白
2014/08/25 职场文书
学生喝酒检讨书500字
2014/11/02 职场文书
护理心得体会范文
2016/01/22 职场文书
MySQL千万级数据表的优化实战记录
2021/08/04 MySQL
MySQL分区表实现按月份归类
2021/11/01 MySQL
Oracle数据库事务的开启与结束详解
2022/06/25 Oracle