Bee*_*eep 5 html javascript firefox html5
最近Firefox开始忽略密码字段的autocomplete ="off",现在允许用户一直保存密码.我们有成千上万用户使用的大型应用程序,根据法律,我们需要确保密码永远不会以明文形式保存在客户端计算机上.
有什么方法可以阻止Firefox保存这些密码吗?我们找到了Chrome的解决方法(它只保存了屏幕上的第一个密码字段,因此我们在真正的密码字段之前添加了一个隐藏的密码字段),但我们对Firefox没有任何好运.截至目前,我们唯一的选择是完全禁用Firefox支持.
是的,我意识到阻止用户保存密码很烦人,但我们别无选择......这是联邦法规强加给我们的要求.
这个问题在办公室引发了很多争论,但我们想出了一个解决方案。
使用按钮单击事件来提交表单(而不是普通的提交按钮)。然后填充隐藏字段,删除可见字段的值并提交。JSFIDDLE
点击事件示例:
$('#post').click(function(e) {
var password = $("#password");
var realPassword = $("#therealdeal");
realPassword.val(password.val());
password.val('');
$('#form').submit();
});
Run Code Online (Sandbox Code Playgroud)
看起来,在提交事件中,浏览器将序列化表单并使用序列化的对象值来提交。这就是为什么你不能简单地做类似的事情
不工作样本:
$('#form').submit(function(e) {
var password = $("#password");
var realPassword = $("#realpassword");
realPassword.val(password.val());
password.val('');
});
Run Code Online (Sandbox Code Playgroud)
即使 dom 上的值在真正的提交发生之前被清除,它仍然从序列化的表单对象中读取。
在 IE、Firefox 和 Chrome 中进行了测试