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


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 相关文章推荐
jQuery元素选择器用法实例
Dec 23 Javascript
全面了解JavaScript的数据类型转换
Jul 01 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
简单实现Bootstrap标签页
Aug 09 Javascript
微信小程序使用image组件显示图片的方法【附源码下载】
Dec 08 Javascript
vue-router路由懒加载和权限控制详解
Dec 13 Javascript
vue项目中使用ueditor的实例讲解
Mar 05 Javascript
对于防止按钮重复点击的尝试详解
Apr 22 Javascript
layui动态加载多表头的实例
Sep 05 Javascript
jquery中attr、prop、data区别与用法分析
Sep 25 jQuery
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
JS实现滑动导航效果
Jan 14 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 面向对象的一个例子
2011/04/12 PHP
PHP购物车类Cart.class.php定义与用法示例
2016/07/20 PHP
PHP PDOStatement::getColumnMeta讲解
2019/02/01 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
php设计模式之模板模式实例分析【星际争霸游戏案例】
2020/03/24 PHP
JS宝典学习笔记(下)
2007/01/10 Javascript
jquery实现手风琴效果实例代码
2013/11/15 Javascript
浅析JavaScript中两种类型的全局对象/函数
2013/12/05 Javascript
JavaScript数组常用操作技巧汇总
2014/11/17 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
GitHub上一些实用的JavaScript的文件压缩解压缩库推荐
2016/03/13 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
Angular使用动态加载组件方法实现Dialog的示例
2018/05/11 Javascript
浅析微信扫码登录原理(小结)
2018/10/29 Javascript
简单了解JavaScript arguement原理及作用
2020/05/28 Javascript
[16:19]教你分分钟做大人——风暴之灵
2015/03/11 DOTA
跟老齐学Python之不要红头文件(1)
2014/09/28 Python
Python实现的监测服务器硬盘使用率脚本分享
2014/11/07 Python
Python中实现最小二乘法思路及实现代码
2018/01/04 Python
python3.7简单的爬虫实例详解
2019/07/08 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
Python上下文管理器全实例详解
2019/11/12 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
python中如何打包用户自定义模块
2020/09/23 Python
css3.0新属性效果在ie下的解决方案
2010/05/10 HTML / CSS
css3选择器基本介绍
2014/12/15 HTML / CSS
类的返射机制中的包及核心类
2016/09/12 面试题
欢送退休感言
2014/02/08 职场文书
校园文化标语
2014/06/18 职场文书
争当四好少年演讲稿
2014/09/13 职场文书
学生会宣传部竞选稿
2015/11/21 职场文书
详解用Python把PDF转为Word方法总结
2021/04/27 Python
MySQL中B树索引和B+树索引的区别详解
2022/03/03 MySQL
使用Ajax实现无刷新上传文件
2022/04/12 Javascript
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server
Redis实现主从复制方式(Master&Slave)
2022/06/21 Redis