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


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.AutoComplete.js中文修正版(支持firefox)
Apr 09 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
Oct 20 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 Javascript
JS实现新浪博客左侧的Blog管理菜单效果代码
Oct 22 Javascript
js实现将选中内容分享到新浪或腾讯微博
Dec 16 Javascript
jQuery简单倒计时效果完整示例
Sep 20 Javascript
浅谈vue.js中v-for循环渲染
Jul 26 Javascript
微信小程序实现手势图案锁屏功能
Jan 30 Javascript
vue添加class样式实例讲解
Feb 12 Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 Javascript
Vue操作Storage本地化存储
Apr 29 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 数组的指针操作实现代码
2011/02/08 PHP
PHP扩展框架之Yaf框架的安装与使用
2016/05/18 PHP
php 5.4 全新的代码复用Trait详解
2017/01/05 PHP
Laravel如何使用Redis共享Session
2018/02/23 PHP
js函数般调用正则
2008/04/08 Javascript
Jquery插件之多图片异步上传
2010/10/20 Javascript
jQuery学习笔记(3)--用jquery(插件)实现多选项卡功能
2013/04/08 Javascript
JavaScript中的变量作用域介绍
2014/12/31 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
jQuery实现图片轮播特效代码分享
2015/09/15 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
Vue2.0基于vue-cli+webpack Vuex的用法(实例讲解)
2017/09/15 Javascript
angular6.x中ngTemplateOutlet指令的使用示例
2018/08/09 Javascript
vue 使用vue-i18n做全局中英文切换的方法
2018/10/29 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
vue-router定义元信息meta操作
2020/12/07 Vue.js
Bootstrap FileInput实现图片上传功能
2021/01/28 Javascript
[52:09]2014 DOTA2华西杯精英邀请赛 5 25 NewBee VS DK第二场
2014/05/26 DOTA
深入解析Python中的urllib2模块
2015/11/13 Python
Python实现字符串反转的常用方法分析【4种方法】
2017/09/30 Python
Python语言实现百度语音识别API的使用实例
2017/12/13 Python
快速查询Python文档方法分享
2017/12/27 Python
python更改已存在excel文件的方法
2018/05/03 Python
[原创]Python入门教程4. 元组基本操作
2018/10/31 Python
pytorch模型存储的2种实现方法
2020/02/14 Python
python 解决print数组/矩阵无法完整输出的问题
2020/02/19 Python
python实现udp传输图片功能
2020/03/20 Python
Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
2020/05/11 Python
解决Keras中CNN输入维度报错问题
2020/06/29 Python
简述Html5 IphoneX 适配方法
2018/02/08 HTML / CSS
Ajax请求总共有多少种Callback
2016/07/17 面试题
关于赌博的检讨书
2014/01/08 职场文书
寄语学生的话
2014/04/10 职场文书
旅游节目策划方案
2014/05/26 职场文书
学生检讨书怎么写
2014/10/09 职场文书
2014年煤矿工作总结
2014/11/24 职场文书