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


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判断浏览器的比较全的代码
Feb 13 Javascript
一个js写的日历(代码部分网摘)
Sep 20 Javascript
JavaScript随机排序(随即出牌)
Sep 17 Javascript
JavaScript模块随意拖动示例代码
May 27 Javascript
分享javascript、jquery实用代码段
Oct 20 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
Dec 23 Javascript
ES5 ES6中Array对象去除重复项的方法总结
Apr 27 Javascript
js实现轮播图的两种方式(构造函数、面向对象)
Sep 30 Javascript
vue实现图片加载完成前的loading组件方法
Feb 05 Javascript
利用JS响应式修改vue实现页面的input值
Sep 02 Javascript
微信小程序实现图片压缩
Dec 03 Javascript
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 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性能优化工具篇Benchmark类调试执行时间
2011/12/06 PHP
php excel reader读取excel内容存入数据库实现代码
2012/12/06 PHP
封装ThinkPHP的一个文件上传方法实例
2014/10/31 PHP
PHP实现过滤掉非汉字字符只保留中文字符
2015/06/04 PHP
laravel http 自定义公共验证和响应的方法
2019/09/29 PHP
解决PhpStorm64不能启动的问题
2020/06/20 PHP
vs2003 js文件编码问题的解决方法
2010/03/20 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
JavaScript实现的简单幂函数实例
2015/04/17 Javascript
jquery图片倾斜层叠切换特效代码分享
2015/08/27 Javascript
如何防止JavaScript自动插入分号
2015/11/05 Javascript
CascadeView级联组件实现思路详解(分离思想和单链表)
2016/04/12 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
关于前后端json数据的发送与接收详解
2017/07/30 Javascript
自定义PC微信扫码登录样式写法
2017/12/12 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
解决Layui选择全部,换页checkbox复选框重新勾选的问题方法
2018/08/14 Javascript
Vue服务端渲染实践之Web应用首屏耗时最优化方案
2019/03/22 Javascript
JavaScript实现简单计算器
2020/03/19 Javascript
vue相同路由跳转强制刷新该路由组件操作
2020/08/05 Javascript
Python OpenCV对本地视频文件进行分帧保存的实例
2019/01/08 Python
window环境pip切换国内源(pip安装异常缓慢的问题)
2019/12/31 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
工程专业求职自荐书范文
2014/02/08 职场文书
群众路线自我剖析范文
2014/11/04 职场文书
民主评议党员个人自我评价
2015/03/03 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
个人道歉信大全
2019/04/11 职场文书
如何撰写促销方案?
2019/07/05 职场文书
ES6 解构赋值的原理及运用
2021/05/25 Javascript
Python数据类型最全知识总结
2021/05/31 Python
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫