有一个登录页,有一个新建用户页。他们都有form表单,有username和password 两个input。
<form>
<input type="text" name="username"/>
<input type="password" name="password"/>
</form>
在登录页的时候浏览器记住了密码,如果去到新建用户页则 username 和 password 会被自动填充上去。
问题是,在新建用户页如何让浏览器不自动填充?(只考虑最新chrome)
其中查了资料http://www.jianshu.com/p/9da6...,用了display:none不生效。在chrome还是会自动填充。
----------分割线----------
已解决。
在前面加一个 <input type="password"/> 并设置css让不在页面中出现即可。
<form>
<input type="password" style={{position: 'absolute', top: '-999px'}}/>
<input type="text" name="username"/>
<input type="password" name="password"/>
</form>
----------分割线----------
so,浏览器的自动填充原理是啥?
Mozilla 官方文档建议
Mozilla developer documentation 建议使用表单设置属性 tautocomplete=”off” 来阻止浏览器从cache获取数据填充登录表单。
但是这种方案不兼容某些Chrome、Firefox。
兼容所有浏览器
最终决定使用使用隐藏input来接受浏览器自动填充,这样不会影响用户体验,也可以兼容所有浏览器。
但是实际上在Chrome上并没什么用,在FireFox上也只能阻止用户名自动填充。
接着搜索,又发现了个新东西
把password的autocomplete属性由off变成了new-password,发现Chrome不自动填充了,但是FireFox上仍然会填充用户名
再接着结合第一点尝试,最后结果是使用以下方式
这样在Chrome和FireFox上就都不会填充了。