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


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 学习笔记 防止发生命名冲突
Jul 30 Javascript
js禁止页面使用右键(简单示例代码)
Nov 13 Javascript
js判断文本框剩余可输入字数的方法
Feb 04 Javascript
纯JavaScript实现的兼容各浏览器的添加和移除事件封装
Mar 28 Javascript
jQuery实现ajax调用WCF服务的方法(附带demo下载)
Dec 04 Javascript
简述jQuery ajax的执行顺序
Jan 05 Javascript
node.js+express制作网页计算器
Jan 17 Javascript
js中json处理总结之JSON.parse
Oct 14 Javascript
vue.js 获取当前自定义属性值
Jun 01 Javascript
微信小程序scroll-x失效的完美解决方法
Jul 18 Javascript
Vue中使用clipboard实现复制功能
Sep 05 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
Sep 21 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 zend解密软件绿色版测试可用
2008/04/14 PHP
php 读取文件乱码问题
2010/02/20 PHP
php中遍历二维数组并以表格的形式输出的方法
2017/01/03 PHP
phpStudy 2016 使用教程详解(支持PHP7)
2017/10/18 PHP
thinkPHP中U方法加密传递参数功能示例
2018/05/29 PHP
如何在PHP环境中使用ProtoBuf数据格式
2020/06/19 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
javascript表单验证 - Parsley.js使用和配置
2013/01/25 Javascript
JS解析XML文件和XML字符串详解
2015/04/17 Javascript
JS简单实现城市二级联动选择插件的方法
2015/08/19 Javascript
JavaScript简单获取系统当前时间完整示例
2016/08/02 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
jQuery实现表格元素动态创建功能
2017/01/09 Javascript
详解webpack打包nodejs项目(前端代码)
2018/09/19 NodeJs
nodejs 使用http进行post或get请求的实例(携带cookie)
2019/01/03 NodeJs
node 标准输入流和输出流代码实例
2019/09/19 Javascript
在Python的Django框架下使用django-tagging的教程
2015/05/30 Python
python生成二维码的实例详解
2017/10/29 Python
pandas DataFrame索引行列的实现
2019/06/04 Python
Python Selenium 之数据驱动测试的实现
2019/08/01 Python
keras训练曲线,混淆矩阵,CNN层输出可视化实例
2020/06/15 Python
一款利用纯css3实现的超炫3D表单的实例教程
2014/12/01 HTML / CSS
CSS3利用text-shadow属性实现多种效果的文字样式展现方法
2016/08/25 HTML / CSS
HTML5实时语音通话聊天MP3压缩传输3KB每秒
2019/08/28 HTML / CSS
Html5实现如何在两个div元素之间拖放图像
2013/03/29 HTML / CSS
Luxplus瑞典:香水和美容护理折扣
2018/01/28 全球购物
车间操作工岗位职责
2013/12/19 职场文书
劳动实践课感言
2014/02/01 职场文书
办公自动化专业大学生职业规划书
2014/03/06 职场文书
求职简历自荐信怎么写
2015/03/26 职场文书
2015初中政治教学工作总结
2015/07/21 职场文书
python 如何在 Matplotlib 中绘制垂直线
2021/04/02 Python
教你如何让spark sql写mysql的时候支持update操作
2022/02/15 MySQL
redis 解决库存并发问题实现数量控制
2022/04/08 Redis