html解决浏览器记住密码输入框的问题


Posted in HTML / CSS onMay 07, 2023

在浏览器中提交表单后,浏览器一般会提示“是否需要记住密码”,确认后在下次提交表单的时候会自动填充某些输入框。

但是在某些情景下(例如在提现,充值的页面),自动填充密码就很不安全。需要采用一定的手段来阻止浏览器自动填充。

在解决的过程中遇到了一些坑,这里做一下笔记:

使用HTML属性 autocomplete="off"

由于自动填充这个特性是浏览器自己实现的,autocomplete这个属性也没有被写入W3C规范。很多浏览器都会直接忽略这个属性。无法禁用自动填充。

使用js在页面加载的时候设置input的value为空
很自然能想到的一个办法,但是浏览器的自动填充居然是在js执行完后再填充的。。。在使用js设置了input的value为空后,浏览器又把input自动填充,无法解决问题。

增加<input type=”password”/>

网上流传甚广的一个方法。这个方法在大部分版本的浏览器上是可行的,但是在某些高版本的浏览器和Safari中失效。后面介绍的几种方法都是基于这个方法的改进。

<!-- 额外增加的input -->
<input type="password" style="display:none"/>
<!-- 原先的input -->
<input type="password"/>

增加form

这个方法较上面那个解决了Safari下自动填充的问题。但是在某些高版本Chrome下失效。(经测试Chrome 46.0可行,Chrome 47.0失效)

<!-- 额外增加的form和input -->
<form style="display:none">
  <input type="password"/>
</form>
<!-- 原先的input -->
<input type="password"/>

最终解决方案

这个方案结合了上面两种方法,最终连Chrome 47.0下自动填充的问题也解决掉。

<!-- 额外增加的内容 -->
<form style="display:none">
  <input type="password"/>
</form>
<input type="password" style="width:0;height:0;float:left;visibility:hidden"/>
<!-- 原先的input -->
<input type="password"/>

这个方法中需要注意的是与目标input同辈的input不能设置成 display:none,如果设置后再Chrome 47.0上会自动填充,因此只能使用其他手段把这个input隐藏。

Summary

使用了最后一种方案后在各个浏览器中运行良好,暂时没发现出现自动填充的现象。果然前端的兼容性问题一直是一件让人恶心的事啊。。

到此这篇关于html解决浏览器记住密码输入框的问题的文章就介绍到这了,更多相关 html记住密码输入框内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章,希望大家以后多多支持三水点靠木!

 
HTML / CSS 相关文章推荐
css 省略号 css3让多余的字符串消失并附加省略号的实现代码
Feb 07 HTML / CSS
纯CSS实现聊天框小尖角、气泡效果
Apr 04 HTML / CSS
HTML+CSS3+JS 实现的下拉菜单
Nov 25 HTML / CSS
HTML5 placeholder属性详解
Jun 22 HTML / CSS
一些常用的HTML5模式(pattern) 总结
Jul 14 HTML / CSS
HTML5、Select下拉框右边加图标的实现代码(增进用户体验)
Oct 16 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
Jun 13 HTML / CSS
详解h5页面在不同ios设备上的问题总结
Mar 01 HTML / CSS
html5的pushstate以及监听浏览器返回事件的实现
Aug 11 HTML / CSS
html5跳转小程序wx-open-launch-weapp踩坑
Dec 02 HTML / CSS
详解如何将 Canvas 绘制过程转为视频
Jan 25 HTML / CSS
CSS3实现三角形不断放大效果
Apr 13 HTML / CSS
使用CSS实现百叶窗效果示例代码
使用CSS实现按钮边缘跑马灯动画
使用CSS实现音波加载效果
table不让td文字溢出操作方法
Dec 24 #HTML / CSS
table设置超出部分隐藏,鼠标移上去显示全部内容的方法
Dec 24 #HTML / CSS
td 内容自动换行 table表格td设置宽度后文字太多自动换行
Dec 24 #HTML / CSS
HTML页面点击按钮关闭页面的多种方式
Dec 24 #HTML / CSS
You might like
PHP5.3.1 不再支持ISAPI
2010/01/08 PHP
解析link_mysql的php版
2013/06/30 PHP
php获取$_POST同名参数数组的实现介绍
2013/06/30 PHP
php eval函数一句话木马代码
2015/05/21 PHP
PHP使用Redis长连接的方法详解
2018/02/12 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
PHP开发API接口签名生成及验证操作示例
2020/05/27 PHP
js和jquery批量绑定事件传参数一(新猪猪原创)
2010/06/23 Javascript
javascript学习笔记(二) js一些基本概念
2012/06/18 Javascript
网页打开自动最大化的js代码
2012/08/22 Javascript
JS定义回车事件(实现代码)
2013/07/08 Javascript
javascript实现数字+字母验证码的简单实例
2014/02/10 Javascript
jQuery实现默认是闭合的FAQ展开效果菜单
2015/09/14 Javascript
Ionic快速安装教程
2016/06/03 Javascript
微信小程序 devtool隐藏的秘密
2017/01/21 Javascript
jQuery实现鼠标跟随效果
2017/02/20 Javascript
微信小程序实现下载进度条的方法
2017/12/08 Javascript
jQuery获取所有父级元素及同级元素及子元素的方法(推荐)
2018/01/21 jQuery
vue 解决文本框被键盘遮住的问题
2019/11/06 Javascript
JavaScript隐式类型转换代码实例
2020/05/29 Javascript
js数组的基本使用总结
2021/01/18 Javascript
[01:56]林书豪DOTA2上海特级锦标赛励志短片
2016/03/05 DOTA
python开发之thread线程基础实例入门
2015/11/11 Python
python定位xpath 节点位置的方法
2019/08/27 Python
Python collections模块使用方法详解
2019/08/28 Python
在pycharm中配置Anaconda以及pip源配置详解
2019/09/09 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python利用线程实现多任务
2020/09/18 Python
记录一下scrapy中settings的一些配置小结
2020/09/28 Python
墨尔本最受欢迎的复古风格品牌:Princess Highway
2018/12/21 全球购物
输入N,打印N*N矩阵
2012/02/20 面试题
服务承诺口号
2014/05/22 职场文书
外贸业务员岗位职责
2015/02/13 职场文书
公司宣传语大全
2015/07/13 职场文书
2016年公共机构节能宣传周活动总结
2016/04/05 职场文书
MySQL令人咋舌的隐式转换
2021/04/05 MySQL