Как программно скрыть список подсказок в chrome? - PullRequest
0 голосов
/ 23 января 2019

Когда пользователь нажимает на поле пароля, сохраненные пароли отображаются под полем следующим образом. Можно ли как-нибудь обойти этот список?

enter image description here

Примечание: я пробовал различные методы, такие как установка свойства поля ввода autocomplete="new-password" и добавление поля поддельного пароля. Но все равно не повезло. :(

1 Ответ

0 голосов
/ 01 февраля 2019

Я нашел способ обойти эту проблему - маскировку паролей с помощью JQuery.

Подсказка : предложение пароля и заполнение формы произойдет только в том случае, если тип поля ввода - пароль.

Итак, решение, к которому я подхожу, заключается в следующем,01).Сделайте тип поля ввода = «текст»

<input type="text" />

02).Маскируйте введенные символы с помощью «•»

var actualPassword = [],
    temperoryPassword,
    currentCursorPosition = 0,
    passwordChar = '•';

$("#password-text").bind("input", function () {
  temperoryPassword = $(this).val();
  var passwordLength = temperoryPassword.length;

  for (var i = 0; i < passwordLength; i++) {
    if (temperoryPassword[i] != passwordChar) {
      actualPassword[i] = temperoryPassword[i];
    }
  }
  
  // Get current cursor position.
  currentCursorPosition = this.selectionStart;
  $(this).val(temperoryPassword.replace(/./g, passwordChar));
});

$("#password-text").bind("keyup", function () {
  var passwordLength = $(this).val().length;

  if (passwordLength < actualPassword.length) {

    var difference = actualPassword.length - passwordLength,
		key = event.keyCode || event.charCode;

    // Check if last keypress was backspace or delete
    if (key == 8 || key == 46) {
      actualPassword.splice(currentCursorPosition, difference);
    }
    // User highlighted and overwrite part of the password
    else {
      actualPassword.splice(currentCursorPosition - 1, difference + 1);
      actualPassword.splice(currentCursorPosition - 1, 0, temperoryPassword[currentCursorPosition - 1]);
    }
  }
});

$("#btnSubmit").click(function(){
    $("#passwordTxt").text(bindactualPassword(actualPassword));
});

// disable password cut, copy and paste function in password field 
 $('#password-text').bind("cut copy paste",function(e) {
     e.preventDefault();
 });

function bindactualPassword(){
   return actualPassword.join(""); 
}

Я написал среднюю статью по этому делу.Вы также можете прочитать это здесь,

https://medium.com/@shamique/programatically-prevent-password-suggestion-and-auto-fill-in-browsers-6661537a3e46

Надеюсь, это будет полезно для других :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...