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


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 相关文章推荐
JScript中的undefined和&quot;undefined&quot;的区别
Mar 08 Javascript
【消息提示组件】,兼容IE6/7&amp;&amp;FF2
Sep 04 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
May 25 Javascript
jQuery实现响应鼠标背景变化的动态菜单效果代码
Aug 27 Javascript
bootstrap laydate日期组件使用详解
Jan 04 Javascript
详解Angular 4.x NgTemplateOutlet
May 24 Javascript
详解Vue中一种简易路由传参办法
Sep 15 Javascript
微信小程序开发之IOS和Android兼容的问题
Sep 26 Javascript
JavaScript简单实现合并两个Json对象的方法示例
Oct 16 Javascript
JS实现页面鼠标点击出现图片特效
Aug 19 Javascript
JavaScript中关于预编译、作用域链和闭包的理解
Mar 31 Javascript
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
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数组
2006/10/09 PHP
mcrypt启用 加密以及解密过程详细解析
2013/08/07 PHP
ini_set的用法介绍
2014/01/07 PHP
php中操作memcached缓存进行增删改查数据的实现代码
2014/08/15 PHP
php实现将上传word文件转为html的方法
2015/06/03 PHP
为数据添加append,remove功能
2006/10/03 Javascript
使用原生js写的一个简单slider
2014/04/29 Javascript
jquery单选框radio绑定click事件实现方法
2015/01/14 Javascript
jQuery使用post方法提交数据实例
2015/03/25 Javascript
jquery判断单选按钮radio是否选中的方法
2015/05/05 Javascript
Jquery解析json字符串及json数组的方法
2015/05/29 Javascript
js控制文本框输入的字符类型方法汇总
2015/06/19 Javascript
js限制文本框只能输入中文的方法
2015/08/11 Javascript
JavaScript实现自动生成网页元素功能(按钮、文本等)
2015/11/21 Javascript
全面解析Bootstrap排版使用方法(文字样式)
2015/11/30 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
json2.js 入门教程之使用方法与实例分析
2017/09/14 Javascript
详解Ubuntu安装angular-cli遇到的坑
2018/09/08 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
原生JS实现顶部导航栏显示按钮+搜索框功能
2019/12/25 Javascript
[49:08]完美世界DOTA2联赛PWL S2 LBZS vs FTD.C 第一场 11.27
2020/12/01 DOTA
对numpy的array和python中自带的list之间相互转化详解
2018/04/13 Python
利用python如何在前程无忧高效投递简历
2019/05/07 Python
用python生成与调用cntk模型代码演示方法
2019/08/26 Python
Python爬虫实现“盗取”微信好友信息的方法分析
2019/09/16 Python
python爬虫之遍历单个域名
2019/11/20 Python
python实现用类读取文件数据并计算矩形面积
2020/01/18 Python
使用python修改文件并立即写回到原始位置操作(inplace读写)
2020/06/28 Python
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
周生生珠宝香港官网:Chow Sang Sang(香港及海外配送)
2019/09/05 全球购物
学校司机岗位职责
2013/11/14 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
书法比赛获奖感言
2014/02/10 职场文书
服务员态度差检讨书
2014/10/28 职场文书
mysql查询的控制语句图文详解
2021/04/11 MySQL
Python Pandas数据分析之iloc和loc的用法详解
2021/11/11 Python