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


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处理table表格的代码
Dec 06 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
Nov 20 Javascript
javascript如何使用bind指定接收者
May 04 Javascript
js实现iframe自动自适应高度的方法
Feb 17 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
Nov 16 Javascript
常用原生js自定义函数总结
Nov 20 Javascript
JQuery学习总结【一】
Dec 01 Javascript
javascript深拷贝和浅拷贝详解
Feb 14 Javascript
教你用十行node.js代码读取docx的文本
Mar 08 Javascript
vue.js路由跳转详解
Aug 28 Javascript
JS实现字符串翻转的方法分析
Aug 31 Javascript
jQuery实现中奖播报功能(让文本滚动起来) 简单设置数值即可
Mar 20 jQuery
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/05 PHP
mysql数据库差异比较的PHP代码
2012/02/05 PHP
详解PHP中的mb_detect_encoding函数使用方法
2015/08/18 PHP
CI(Codeigniter)的Setting增强配置类实例
2016/01/06 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
jQuery AJAX实现调用页面后台方法和web服务定义的方法分享
2012/03/01 Javascript
jquery操作cookie插件分享
2014/01/14 Javascript
Node.js 的异步 IO 性能探讨
2014/10/08 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
基于jQuery Circlr插件实现产品图片360度旋转
2015/09/20 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
easyui-combobox 实现简单的自动补全功能示例
2016/11/08 Javascript
Bootstrap CSS组件之导航条(navbar)
2016/12/17 Javascript
Angular的$http与$location
2016/12/26 Javascript
初探nodeJS
2017/01/24 NodeJs
Angularjs验证用户输入的字符串是否为日期时间
2017/06/01 Javascript
vuejs实现标签选项卡动态更改css样式的方法
2018/05/31 Javascript
Vite和Vue CLI的优劣
2021/01/30 Vue.js
跟老齐学Python之用Python计算
2014/09/12 Python
简单谈谈python中的Queue与多进程
2016/08/25 Python
python3 模拟登录v2ex实例讲解
2017/07/13 Python
python安装教程
2018/02/28 Python
使用Python和Prometheus跟踪天气的使用方法
2019/05/06 Python
python中利用numpy.array()实现俩个数值列表的对应相加方法
2019/08/26 Python
使用pyqt5 tablewidget 单元格设置正则表达式
2019/12/13 Python
Python面向对象原理与基础语法详解
2020/01/02 Python
python计算波峰波谷值的方法(极值点)
2020/02/18 Python
python GUI库图形界面开发之PyQt5信号与槽多窗口数据传递详细使用方法与实例
2020/03/08 Python
python Matplotlib数据可视化(1):简单入门
2020/09/30 Python
Html5+JS实现手机摇一摇功能
2015/04/24 HTML / CSS
松下电器美国官方商店:Panasonic美国
2016/10/14 全球购物
文体活动实施方案
2014/03/27 职场文书
一个成功的互联网创业项目,必须满足这些要求
2019/08/23 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS
一条 SQL 语句执行过程
2022/03/17 MySQL