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


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 相关文章推荐
用apply让javascript函数仅执行一次的代码
Jun 27 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
JavaScript中停止执行setInterval和setTimeout事件的方法
May 14 Javascript
jQuery实现美观的多级动画效果菜单代码
Sep 06 Javascript
JavaScript学习笔记之取数组中最大值和最小值
Mar 23 Javascript
引用jquery框架后出错的解决方法
Aug 09 Javascript
原生js实现tab选项卡切换
Mar 23 Javascript
JavaScript中关于base64的一些事
May 06 Javascript
vue elementUI table 自定义表头和行合并的实例代码
May 22 Javascript
通过JQuery,JQueryUI和Jsplumb实现拖拽模块
Jun 18 jQuery
通过实例了解JS 连续赋值
Sep 24 Javascript
js、jquery实现列表模糊搜索功能过程解析
Mar 27 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.NET的入门教程
2006/10/09 PHP
php中邮箱地址正则表达式实现与详解
2012/04/24 PHP
解析使用substr截取UTF-8中文字符串出现乱码的问题
2013/06/20 PHP
常见php数据文件缓存类汇总
2014/12/05 PHP
laravel 5 实现模板主题功能
2015/03/02 PHP
Yii框架参数配置文件params用法实例分析
2019/09/11 PHP
laravel框架数据库配置及操作数据库示例
2019/10/10 PHP
php 中的信号处理操作实例详解
2020/03/04 PHP
JavaScript异步编程Promise模式的6个特性
2014/04/03 Javascript
JQuery跳出each循环的方法
2015/04/16 Javascript
jQuery实现下拉框选择图片功能实例
2015/08/08 Javascript
再谈Javascript中的异步以及如何异步
2016/08/19 Javascript
AngularJS路由实现页面跳转实例
2017/03/03 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
Angular.js中控制器之间的传值详解
2017/04/24 Javascript
深入理解Vue-cli搭建项目后的目录结构探秘
2017/07/13 Javascript
Angular弹出模态框的两种方式
2017/10/19 Javascript
微信小程序自定义弹窗wcPop插件
2018/11/19 Javascript
vue双向绑定及观察者模式详解
2019/03/19 Javascript
解决vue中使用proxy配置不同端口和ip接口问题
2019/08/14 Javascript
js设计模式之代理模式及订阅发布模式实例详解
2019/08/15 Javascript
vue excel上传预览和table内容下载到excel文件中
2019/12/10 Javascript
在win和Linux系统中python命令行运行的不同
2016/07/03 Python
python远程连接服务器MySQL数据库
2018/07/02 Python
python文件操作之批量修改文件后缀名的方法
2018/08/10 Python
Python3 中作为一等对象的函数解析
2019/12/11 Python
python语言实现贪吃蛇游戏
2020/11/13 Python
python中温度单位转换的实例方法
2020/12/27 Python
html5触摸事件判断滑动方向的实现
2018/06/05 HTML / CSS
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
优秀教师主要事迹
2014/02/01 职场文书
老公保证书范文
2014/04/29 职场文书
2014领导干部学习焦裕禄同志先进事迹思想汇报
2014/09/19 职场文书
端午节活动总结报告
2015/02/11 职场文书
JS封装cavans多种滤镜组件
2022/02/15 Javascript