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


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 相关文章推荐
Javascript 强制类型转换函数
May 17 Javascript
CSS(js)限制页面显示的文本字符长度
Dec 27 Javascript
JavaScript?Apple设备检测示例代码
Nov 15 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
JavaScript中Boolean对象的属性解析
Oct 21 Javascript
javascript学习指南之回调问题
Apr 23 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
JS中input表单隐藏域及其使用方法
Feb 13 Javascript
Vue仿手机qq的实例代码(demo)
Sep 08 Javascript
教你如何用node连接redis的示例代码
Jul 12 Javascript
vue-awesome-swiper 基于vue实现h5滑动翻页效果【推荐】
Nov 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 中的输出缓冲
2006/12/21 PHP
织梦模板标记简介
2007/03/11 PHP
Zend Framework动作控制器用法示例
2016/12/09 PHP
浅谈thinkphp5 instance 的简单实现
2017/07/30 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
Laravel 框架返回状态拦截代码
2019/10/18 PHP
javascript 最常用的10个自定义函数[推荐]
2009/12/26 Javascript
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
javascript中IE浏览器不支持NEW DATE()带参数的解决方法
2012/03/01 Javascript
你必须知道的Javascript知识点之&quot;字面量和对应类型&quot;说明介绍
2013/04/23 Javascript
用js实现table单元格高宽调整,兼容合并单元格(兼容IE6、7、8、FF)实例
2013/06/25 Javascript
模拟用户点击弹出新页面不会被浏览器拦截
2014/04/08 Javascript
jQuery鼠标悬浮链接弹出跟随图片实例代码
2016/01/08 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
node.js中express中间件body-parser的介绍与用法详解
2017/05/23 Javascript
vue中Element-ui 输入银行账号每四位加一个空格的实现代码
2018/09/14 Javascript
Web安全之XSS攻击与防御小结
2018/12/13 Javascript
python中执行shell命令的几个方法小结
2014/09/18 Python
python中os模块详解
2016/10/14 Python
浅谈flask源码之请求过程
2018/07/26 Python
python psutil模块使用方法解析
2019/08/01 Python
Python + Requests + Unittest接口自动化测试实例分析
2019/12/12 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
收集的7个CSS3代码生成工具
2010/04/17 HTML / CSS
有750多个顶级品牌的瑞士时尚在线:ABOUT YOU
2017/01/04 全球购物
Julep官网:美容产品和指甲油
2017/02/25 全球购物
Book Depository亚太地区:一家领先的国际图书零售商
2019/05/05 全球购物
Linux开机引导的步骤是什么
2015/10/19 面试题
暑期研修感言
2014/02/17 职场文书
学习全国两会精神心得体会范文
2014/03/17 职场文书
个人作风建设心得体会
2014/10/22 职场文书
优秀党务工作者先进事迹材料
2014/12/25 职场文书
社区元宵节活动总结
2015/02/06 职场文书
高中诗歌鉴赏教学反思
2016/02/16 职场文书
python之np.argmax()及对axis=0或者1的理解
2021/06/02 Python
Python3使用Qt5来实现简易的五子棋小游戏
2022/05/02 Python