最佳答案
像许多人一样,我多年来一直使用 autocomplete=off
技巧。不幸的是,现在浏览器不再支持该属性,我不得不想出其他办法。这是 jQuery 中的一个可行的解决方案:
$(function() {
$('input[type=password]').each(function() {
$(this).attr('data-background-color', $(this).css('background-color'));
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
$(this).focus(function() {
$(this).attr('type', 'password');
$(this).css('background-color', $(this).attr('data-background-color'));
});
$(this).blur(function() {
$(this).css('background-color', $(this).css('color'));
$(this).attr('type', 'text');
});
});
});
它不会停止自动完成,这是自动完成更改的目的,但它会首先阻止密码存储管理器检测密码字段。
工作原理:页面加载完成后,它会获取文本字段的背景颜色并将其隐藏起来(数据背景颜色)。然后它将背景颜色设置为文本颜色并将输入类型更改为“文本”。焦点对准时,该字段将恢复到之前的状态(具有原始背景颜色的密码字段)。模糊时,字段背景颜色和类型会再次交换。提交表单时,它只是一个文本字段。您可以享受密码字段的所有好处(例如,无需复制),而无需密码管理器在提交表单时妨碍您。
注意:如果文本本身有特殊效果,则可能无法正常工作。它还存在一些小的键盘插入符号焦点问题,即单击字段会导致插入符号跳转到文本的开头,而不是单击发生的位置。
从好的方面来说,它在禁用 Javascript 的浏览器中运行良好。渐进增强等等。
关于javascript - 如何禁用浏览器保存密码功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29781848/