去除浏览器自动填充密码功能
- 去除浏览器自动填充密码功能
去除浏览器自动填充密码功能
在项目开发中,遇到这样一个问题,前端显示后端一个机密数据时,使用了<input type = 'password'/>
的方式,数据通过后端查询后通过ng-model
双向绑定到页面进行显示,但是由于浏览器密码自动填充功能的影响,这个机密值会被用户记住的密码替换,导致显示的是用户记住的密码,而不是后端传递的真正的数据。
网上提供了多种方式,以下介绍两种:
- 在
input
框上增一个autocomplete='off'
, 这个是firefox推荐的属性,测试发现对Chrome无效,不采用。
<input type = 'password' name = 'secretField' autocomplete='off'/>
- 在真正要显示的机密框前增加一个同名的input框,并设置
display = 'none'
,测试有效,真正的机密框不会被自动填充,但是增加了无意义的html结构:
<input type = 'password' name=‘secretField’ style=‘display: none’>
<input type = 'password' id='secretField' name = 'secretField' required/>