防止浏览器记住用户名与密码的方法介绍

发布时间:2020-01-23编辑:脚本学堂
有时不希望浏览器记住用户名与密码,如何才能做到这一点呢?本文为大家介绍一些方法,供大家参考。

大多数的浏览器都有自动填写功能,在input中添加autocomplete="off",可以不让浏览器记住用户名与密码,但这种方法不适用于所有浏览器,有的就不支持这样的写法,那么应该如何解决呢?

且看本文为大家带来的介绍吧。

1、针对浏览器记住密码
1)、首先大部分浏览器都是根据表单域的type="password"来判断密码域的,所以针对这种情况可以采取“动态设置密码域”的方法:
 

复制代码 代码示例:
<input type="text" name="password" onfocus="this.type='password'" />

解释:当这个文档框获取焦点时才将其变成密码域,这样浏览器就不会记住密码,当然为了更加完善,还可以把autocomplete="off"属性也加上。
2)、在onload事件,把密码框的值清空,即:
 

复制代码 代码示例:
<script language="javascript">
window.load = function(){
document.getElementById('密码域ID').value='';
};
</script>

3)、页面采用https协议,因为https是不会对表单进行保存信息的。
4)、采用flash做登录表单,这种情况浏览器也不会记录表单信息。
5)、再来个变态的好了,就是可以把type="password"改成type="text",因为type不是password就不会出现记住密码功能,然后设置一个变量如:var val=""或设置一个隐藏域<input type="hidden" name="val">,最后用onpropertychange把密码换成一行圆点,并把值赋给val,提交时再把val的值还原回去,由于效果和*号一样。 用户是看不出来的。

2、针对有些浏览器插件的自动填表功能
这个就比较麻烦了,我想这种情况应该是插件记住表单域name的值,然后再进行填表,这种情况,我觉得可以在页面加载时动态更改name的值,当提交表单的时候再把表单的值组合成正确的对应值再提交。这个没有经过验证,只是我个人的想法。你可以试试

如果以上这些方法还满足不了你,那我也没办法了。

建议:
试一下把对应域名下的cookie清掉,浏览器应该是根据cookie来记住用户名密码的。
(有的浏览器是在提交表单后,根据提交的值来记住的)

有些浏览器不记录在COOKIE,INPUT里输入过的值如何清除?
浏览器记住密码的实现方式就是通过寻找type为password的input输入框,然后前边一个输入框就作为用户名记住。
解决方法:
在用户名input和密码input之间增加一个type为text的输入框设置css属性display为none。