Welche Heuristiken verwendet Chrome, um zu entscheiden, ob Anmeldeformulardaten gespeichert und beim nächsten Besuch automatisch vervollständigt werden?
Wenn Chrome die Anmeldeinformationen für ein bestimmtes Formular nicht speichert, was könnten die Gründe dafür sein? Ich weiß Folgendes:
- die Felder „Benutzername“ und „Passwort“haben müssen
autocomplete="on"
; - die Formhaben müssen
method="POST"
.
Experimentell reicht dies nicht aus: Ich habe eine Anmeldeseite (privat, entschuldigen Sie, aber der Kern des Codes steht weiter unten), die beide Kriterien erfüllt und bei der die Anmeldeinformationen nicht automatisch vervollständigt werden.
Hier ist mein konkretes Problem. Ich habe es anders gelöst (durch die InstallationAutoFillund dazu gebracht werden, meine Anmeldeinformationen in das Formular einzugeben), aber ich würde trotzdem gerne wissen, warum Chrome nicht anbietet, die Anmeldeinformationen zu speichern.
Eine Website (die nicht von mir geschrieben wurde und nicht öffentlich zugänglich ist) erfordert einen Benutzernamen und ein Passwort. Sie verwendet ein (für meine uninformierten Augen) ziemlich standardmäßig aussehendes Formular, das wie folgt aussieht (ich habe viele Verschachtelungen <div>
und so weiter weggelassen und die hier gezeigten Attribute und Funktionen fooXXX
wurden von mir umbenannt).
<form name="aspnetForm" method="post" action="default.aspx" onsubmit="javascript:return WebForm_OnSubmit();" id="aspnetForm">
<table>
<tr>
<td>Username:</td>
<td><input name="foo$name" type="text" id="foo_name" tabindex="1" autocomplete="off" onkeyup="fooFunction()" style="width:175px;" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input name="foo@pass" type="password" id="foo_pass" tabindex="2" value="" autocomplete="off" style="width:175px;" /></td>
</tr>
</table>
</form>
Ich möchte, dass mein Browser meine Anmeldeinformationen für diese Site speichert. Die Funktion ist im Browser aktiviert, aber diese Site hat eine Besonderheit, die dazu führt, dass weder Firefox noch Chrome die Funktion zum Speichern von Name und Passwort anbieten.
Ich habe ein Benutzerskript geschrieben (Greasemonkey-Skript in Firefox, entpackte Erweiterung in Chrome), um autocomplete="off"
Folgendes zu ändern autocomplete="on"
:
document.querySelector("#foo_user").setAttribute("autocomplete", "on");
document.querySelector("#foo_pass").setAttribute("autocomplete", "on");
In Firefox hat dies den gewünschten Effekt: Firefox bietet an, sich das Kennwort zu merken, und wenn ich die Anmeldeseite das nächste Mal besuche, werden meine Anmeldeinformationen automatisch eingetragen.
In Chrome (27.0.1453.93, Linux) habe ich kein solches Glück. Ich werde nicht aufgefordert, mir das Passwort zu merken und bekomme keinen Verlauf für das Feld „Benutzername“. Ich habe bestätigt, dass das Skript ausgeführt wird, indem ich die Elemente überprüft habe . input
Sie zeigen .autocomplete="on"
Ich habe versucht, diese Zeilen zu meinem Benutzerskript hinzuzufügen, aber sie verbessern die Situation nicht.
document.querySelector("#foo_user").removeAttribute("onkeyup");
document.querySelector("#foo_pass").removeAttribute("value");
Worin unterscheiden sich die Heuristiken von Chrome und Firefox und wie kann ich erreichen, dass sich Chrome meine Anmeldeinformationen merkt?
Antwort1
Verwenden Sie dieAutovervollständigung=einVerlängerung.
Ändert „autocomplete=off“ in Webseiten in „autocomplete=on“, sodass Ihre Passwörter gespeichert werden.
Antwort2
Ich habe bei der Suche nach neuen Flags ein Flag gefunden, das das Problem der automatischen Vervollständigung zu lösen scheint. In chrome://flags gibt es ein Flag namens „Anmeldeerkennung aktivieren“. Stellen Sie es auf „Deaktiviert“ und es sollte (zumindest bis das Experiment entfernt wird) Ihr Problem lösen. (Unter Chrome für iOS existiert dieses Flag nicht! Auf dieser Plattform stecken Sie also fest!) Und was die Antwort aufWasGoogle verwendet, ich wette, dass es Intents wie die für die Omnibox verwendet, wo man den Verlauf sehen kann, aber da bin ich mir nicht sicher! Grüße, Mac