it-swarm.com.de

Deaktivieren des gespeicherten Kennworts von Chrome Eingabeaufforderungseinstellung über JavaScript

 Chrome pop up bubble

Gibt es eine Möglichkeit, Chrome-Einstellungen mithilfe von JavaScript oder jQuery zu ändern? Ich möchte die Popup-Blase zum Speichern von Passwörtern mithilfe von JavaScript deaktivieren. Wie macht man das?

12
Jay Ponkia

Jetzt werde ich auf meine eigene Frage antworten.

Es kann sowohl in Chrom als auch in Mozilla Fire Fox durchgeführt werden.

Für Chrome

Zunächst müssen Sie das Attribut "password" des Eingabetyps entfernen.

Der Hauptgrund dafür ist, wenn Sie Eingabe type = "text" und input type = "password" nehmen. Der Hauptbrowser zeigt dieses Popup an. Da Browser über eine eingebaute Funktionalität verfügen, wird das Popup-Fenster angezeigt, wenn Sie als Eingabe "type" = "password" verwenden.

Jetzt können wir Chrom daraus manipulieren.

Hier ist ein Beispiel

<html>
<head>
   <title> Remove Save Password Pop Up For Chrome </title>
   <style>
       #txtPassword{
           -webkit-text-security:disc;
       }
   </style>
</head>
<body>
   <input type="text" id="txtUserName" />
   <br />
   <input type="text" id="txtPassword" />
   <br />
</body>
</html>

Diese css-Eigenschaft wird zum Ändern von Text in Aufzählungszeichen verwendet.

Für Mozilla

Sie können dies nicht in Mozilla tun. Weil -moz-text-security veraltet ist. Es funktioniert nicht in Mozilla.

Aber wir können Mozilla auch manipulieren.

Es gibt jetzt eine Liste von Zeichencodes in HTML, die in allen gängigen Browsern unterstützt wird.

Von diesem Zeichencode für Aufzählungszeichen lautet '•'. Wenn Sie diesen Code in HTML schreiben, wird ein Aufzählungszeichen wie folgt ausgegeben: ""

Jetzt können wir das Textfeld durch diese Aufzählungszeichen ersetzen

Dafür gibt es jedoch eine Einschränkung. Sie können keine Aufzählungszeichen innerhalb des Textfelds drucken. Es gibt aber auch eine Lösung für diese Einschränkung. Weil in der Programmierwelt alles möglich ist.

Für diese Einschränkung können wir fake div machen, das Aufzählungszeichen anzeigt, wenn Sie ein Passwort schreiben.

Hier ist ein Beispiel.

<html>
<head>
  <title> Remove Save Password Pop Up For Mozilla </title>
  <script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript">
  <script>
      function RemoveSavedPassword() {
         if (jQuery.browser.webkit == undefined) {
             inputValue = $('.real-input').val();
             numChars = inputValue.length;
             showText = "";
        for (i = 0; i < numChars; i++) {
            showText += "&#8226;";
        }
        $('.fake-input').html(showText);
    }
 }
  </script>
</head>
<body>
    <div class="input-box">
       <label>Enter password:</label>
       <div class="fake-input"></div>
       <input type="text" onKeyUp="RemoveSavedPassword()" class="real-input">
    </div>
</body>
</html>

Nun gibt es einen Zauber von CSS. Magie bedeutet Kraft für Rand, Füllungen, Deckkraft und Positionsattribute, mit denen der Benutzer bearbeitet werden kann.

Hier ist der link:

http://codepen.io/jay191193/pen/bVBPVa

Sicherheitsproblem

Zur Sicherheit der Eingabe type = "text" anstelle von input type = "password" können Sie diesen link besuchen:

Sicherheitsproblem beim Ändern von type = "password" in type = "text"

16
Jay Ponkia

Es gibt keine Möglichkeit, Chrome-Einstellungen direkt von JavaScript aus zu ändern. Die folgende Antwort konzentriert sich darauf, wie verhindert werden kann, dass das Dialogfeld für eine bestimmte HTML-Variable (form) angezeigt wird.


Soweit ich das beurteilen kann, gibt es keine großartigen Möglichkeiten - aus dem, was ich gelesen habe, wird das HTML5 autocomplete="off"-Attribut in Chrome ignoriert. Es wird daher aufgefordert, das Kennwort zu speichern, auch wenn Sie das Attribut angeben.

Es gibt jedoch eine Problemumgehung: Wenn Sie das Feld password so lange als schreibgeschützt festlegen, bis es fokussiert ist, fordert Chrome nicht zum Speichern der Berechtigungsnachweise auf. Leider gibt es keine gute saubere Lösung, die ich kenne, deshalb ist die Lösung, die ich hier poste, ein bisschen hackig.

Bitte sehen Sie sich die JSFiddle in Chrome an und versuchen Sie, jedes Formular einzureichen, um die Lösung in Aktion zu sehen (Sie müssen die Geige nach jedem Senden erneut laden): https://jsfiddle.net/g0e559yn/2/

Vollständiger Code:

/* Chrome does not ask to save the password from this form */

<form id="form1" action="/">
Name:<br />
<input type="text" name="userid" />
<br />
Password:<br />
<input type="password" readonly onfocus="$(this).removeAttr('readonly');" />
<br />
<button type="submit" form="form1" value="Submit">Submit</button>
</form>

/*Chrome asks to save the password from this form */

<form id="form2" action="/">
Name:<br />
<input type="text" name="userid" />
<br />
Password:<br />
<input type="password" name="psw" />
<br />
<button type="submit" form="form2" value="Submit">Submit</button>
</form>

Ich glaube, ich habe eine grobe, aber funktionierende Methode gefunden, um das Speichern des Kennworts durch den Browser zu verhindern. Es könnte keine wirklich schöne Lösung sein, aber es hat für mich funktioniert.

Mit jQuery gemacht.

Ich hoffe es hilft.

$('#modified span').on('click', function(e){
  e.preventDefault();
  $('#modified').submit();
});


//Clear the form on submit
$('form').on('submit', function(){
  $('form input[type="text"], form input[type="password"]').val('');
});
#modified input[type="submit"]{
  pointer-events: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>

<form>
  <h1>Browser IS asking to save password</h1>
  
  <input type="text" placeholder="Login"/>
  <input type="password" placeholder="Password"/>
  <input type="submit" value="Submit"/>
</form>

<form id="modified">
  <h1>Browser IS NOT asking to save password</h1>
  <input type="text" placeholder="Login"/>
  <input type="password" placeholder="Password"/>
  <span>
    <input type="submit" value="Submit"/>
  </span>
</form>

1
Aterr

Diese Methode funktioniert für mich in Chrome und Mozilla. Verwenden Sie dies in meinen Projekten:

<input type="text" name="email" onfocus="this.removeAttribute('readonly');" id="email" placeholder="Email Address" class="form-control" email="required email" required="">

Fügen Sie nach dieser Eingabe onfocus="this.removeAttribute('readonly');" in Ihren Eingabetyp ein. Das gespeicherte Passwort wird nicht gespeichert.

0
Bugfixer

Für Chrome und Firefox 2018

NUR, WENN SIE AJAX VERWENDEN:

Nachdem Sie überprüft haben, ob Login und Passwort in Ordnung sind, löschen Sie das Eingabefeld für das Passwort:

$.post("/auth", {login: $("#login").val(), pass: $("#password").val(); }, function(data){
   if (data == "auth is ok"){
     // clear password field
     $("#password").val(''); // <-- this will prevent browser to save password
   }
});
0
waza123

Ich habe erfolgreich verhindert, dass dieses Popup durch Hinzufügen des type="button"-Attributs zu <button>, das das Ereignis startet, hinzugefügt wird.

Ich hatte Browser verstanden, die das "Möchten Sie dieses Login speichern?" Ein Popup mit einem beliebigen Formular senden, aber ich bekomme dieses Popup auch, wenn ich einen Button außerhalb eines <form> betreibe. Ich vermute, da ein Button standardmäßig <button type="submit"> ist, wird das Klicken in gewisser Weise als Formularvorlage erkannt, auch wenn Sie ihn nicht in einem <form> verwenden.

In aktuellen Versionen von Firefox, Chrome, Edge getestet.

0
Lucas Morgan