Nach dem Absenden des Formulars im Browser fragt der Browser im Allgemeinen: „Müssen Sie sich das Passwort merken?“ Nach der Bestätigung werden bestimmte Eingabefelder beim nächsten Absenden des Formulars automatisch ausgefüllt.
Allerdings ist das automatische Eingeben von Passwörtern in manchen Fällen (z. B. auf Abhebungs- und Aufladeseiten) sehr unsicher. Es sind einige Maßnahmen erforderlich, um das automatische Ausfüllen des Browsers zu verhindern.
Während des Lösungsprozesses bin ich auf einige Fallstricke gestoßen. Hier einige Hinweise:
Da die Autofill-Funktion vom Browser selbst implementiert wird, wurde das Autocomplete-Attribut nicht in die W3C-Spezifikation geschrieben. Viele Browser ignorieren dieses Attribut einfach. Autofill kann nicht deaktiviert werden.
Es ist natürlich, sich eine Möglichkeit auszudenken, js zu verwenden, um den Eingabewert beim Laden der Seite auf leer zu setzen, aber die automatische Ausfüllung des Browsers wird tatsächlich nach der Ausführung von js ausgefüllt. . . Nachdem der Wert der Eingabe mithilfe von js auf leer gesetzt wurde, füllte der Browser die Eingabe automatisch aus, wodurch das Problem nicht gelöst werden konnte.
Eine Methode, die im Internet weit verbreitet ist. Diese Methode ist bei den meisten Browserversionen möglich, funktioniert jedoch bei einigen höheren Browserversionen und Safari nicht. Mehrere später eingeführte Methoden basieren auf Verbesserungen dieser Methode.
<!-- Zusätzliche Eingabe --> <input type="password" style="display:none"/> <!-- Originaleingabe --> <input type="password"/>
Diese Methode löst das Problem des automatischen Ausfüllens in Safari im Vergleich zur oben genannten. In einigen höheren Versionen von Chrome funktioniert es jedoch nicht. (Nach dem Test funktioniert Chrome 46.0, Chrome 47.0 schlägt fehl)
<!-- Zusätzliches Formular und Eingabe --> <form style="display:none"> <input type="password"/> </form> <!-- Originaleingabe --> <input type="password"/>
Diese Lösung kombiniert die beiden oben genannten Methoden und löst schließlich das Problem des automatischen Füllens unter Chrome 47.0.
<!--Zusätzlicher Inhalt--> <form style="display:none"> <input type="password"/> </form> <input type="password" style="width:0;height:0;float:left;visibility:hidden"/> <!-- Originaleingabe --> <input type="password"/>
Bei dieser Methode ist zu beachten, dass die Eingabe, die von derselben Generation wie die Zieleingabe ist, nicht auf display:none gesetzt werden kann. Wenn sie festgelegt ist, wird sie in Chrome 47.0 automatisch ausgefüllt, sodass Sie nur andere Mittel verwenden können um diese Eingabe auszublenden.
Nach Verwendung der letzten Lösung läuft sie in verschiedenen Browsern gut und es wird vorerst keine automatische Befüllung gefunden. Tatsächlich waren Front-End-Kompatibilitätsprobleme schon immer eine eklige Sache. .
Damit ist dieser Artikel darüber abgeschlossen, wie HTML das Problem des Speicherns von Kennworteingabefeldern in Browsern löst. Weitere Informationen zum Speichern von Kennworteingabefeldern in HTML finden Sie in früheren Artikeln auf downcodes.com. Ich hoffe, Sie unterstützen uns weiter downcodes.com in Zukunft mehr!