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


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 SELECT单选模拟jQuery.select.js
Nov 12 Javascript
JS随机漂浮广告代码具体实例
Nov 19 Javascript
javascript计时器事件使用详解
Jan 07 Javascript
AngularJS基础知识笔记之表格
May 10 Javascript
jquery实现最简单的滑动菜单效果代码
Sep 12 Javascript
IE9+已经不对document.createElement向下兼容的解决方法
Sep 14 Javascript
详解AngularJS如何实现跨域请求
Aug 22 Javascript
Bootstrap CSS组件之按钮下拉菜单
Dec 17 Javascript
Vue + Webpack + Vue-loader学习教程之相关配置篇
Mar 14 Javascript
Bootstrap实现下拉菜单多级联动
Nov 23 Javascript
vue+webpack中配置ESLint
Nov 07 Javascript
javascript设计模式 ? 状态模式原理与用法实例分析
Apr 22 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 全局变量范围分析
2009/08/07 PHP
ThinkPHP实现将本地文件打包成zip下载
2014/06/26 PHP
利用PHP如何实现Socket服务器
2015/09/23 PHP
php的instanceof和判断闭包Closure操作示例
2020/01/26 PHP
js与jquery中获取当前鼠标的x、y坐标位置的代码
2011/05/23 Javascript
js中的string.format函数代码
2020/08/11 Javascript
jQuery EasyUI API 中文文档 - Tree树使用介绍
2011/11/19 Javascript
Jquery 数据选择插件Pickerbox使用介绍
2012/08/24 Javascript
异步动态加载js与css文件的js代码
2013/09/15 Javascript
jquery实现简单的轮换出现效果实例
2015/07/23 Javascript
js前端实现多图图片上传预览的两个方法(推荐)
2016/11/18 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
Vue 仿百度搜索功能实现代码
2017/02/16 Javascript
JS+jQuery实现注册信息的验证功能
2017/09/26 jQuery
VSCode中如何利用d.ts文件进行js智能提示
2018/04/13 Javascript
微信小程序实现红包雨功能
2018/07/11 Javascript
vue富文本框(插入文本、图片、视频)的使用及问题小结
2018/08/17 Javascript
详解vue挂载到dom上会发生什么
2019/01/20 Javascript
js实现无缝轮播图插件封装
2020/07/31 Javascript
[01:02:48]2018DOTA2亚洲邀请赛小组赛 A组加赛 Newbee vs Liquid
2018/04/03 DOTA
python集合类型用法分析
2015/04/08 Python
Python2中的raw_input() 与 input()
2015/06/12 Python
pygame游戏之旅 添加游戏介绍
2018/11/20 Python
python模拟菜刀反弹shell绕过限制【推荐】
2019/06/25 Python
python安装virtualenv虚拟环境步骤图文详解
2019/09/18 Python
Python HTMLTestRunner可视化报告实现过程解析
2020/04/10 Python
python cookie反爬处理的实现
2020/11/01 Python
有趣、实用和鼓舞人心的产品:Inspire Uplift
2019/11/05 全球购物
医院实习接收函
2014/01/12 职场文书
物流专员岗位职责
2014/02/17 职场文书
三分钟演讲稿范文
2014/04/24 职场文书
政治学求职信
2014/06/03 职场文书
离婚协议书范本(2014版)
2014/09/28 职场文书
《黄山奇石》教学反思
2016/02/18 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
Nginx设置日志打印post请求参数的方法
2021/03/31 Servers