Так как большинство из autocomplete
предложений, в том числе общепринятом ответ, не работают в современных веб - браузеров (например , веб - браузер менеджеры паролей игнорируют autocomplete
), более новым решением является своп между password
и text
типами и сделать цвет фона под цвет текста , когда поле является текстовым полем, которое продолжает скрывать пароль, будучи реальным паролем, когда пользователь (или программа, подобная KeePass) вводит пароль. Браузеры не просят сохранять пароли, которые хранятся в текстовых полях.
Преимущество этого подхода заключается в том, что он допускает постепенное улучшение и, следовательно, не требует Javascript для поля, функционирующего как поле обычного пароля (вместо этого можно также начать с простого текстового поля и применить тот же подход, но это не совсем HIPAA). PHI / PII-совместимый). Кроме того, этот подход не зависит от скрытых форм / полей, которые необязательно могут быть отправлены на сервер (потому что они скрыты), и некоторые из этих приемов также не работают в некоторых современных браузерах.
Плагин jQuery:
https://github.com/cubiclesoft/php-flexforms-modules/blob/master/password-manager/jquery.stoppasswordmanager.js
Соответствующий исходный код по ссылке выше:
(function($) {
$.fn.StopPasswordManager = function() {
return this.each(function() {
var $this = $(this);
$this.addClass('no-print');
$this.attr('data-background-color', $this.css('background-color'));
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this.attr('autocomplete', 'off');
$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');
$this[0].selectionStart = $this[0].selectionEnd;
});
$this.on('keydown', function(e) {
if (e.keyCode == 13)
{
$this.css('background-color', $this.css('color'));
$this.attr('type', 'text');
$this[0].selectionStart = $this[0].selectionEnd;
}
});
});
}
}(jQuery));
Демо-версия:
https://barebonescms.com/demos/admin_pack/admin.php
Нажмите «Добавить запись» в меню, а затем прокрутите вниз страницы до «Модуль: Остановить менеджер паролей».
Отказ от ответственности: хотя этот подход работает для зрячих людей, могут возникнуть проблемы с программным обеспечением для чтения с экрана. Например, программа чтения с экрана может прочитать пароль пользователя вслух, потому что видит текстовое поле. Также могут быть другие непредвиденные последствия использования вышеуказанного плагина. Изменение функциональности встроенного веб-браузера должно быть сделано с осторожностью при тестировании широкого спектра условий и крайних случаев.