Frage

Ich habe eine Web-Anwendung in reinem JavaScript geschrieben (keine vorab generierte HTML mit Ausnahme des Dokuments, das lädt alle JS-Dateien).

Diese App enthält ein Anmeldeformular, die dynamisch erstellt wird, wenn das document.ready Ereignis Ereignis ausgelöst wird. Ich Trick den Browser in der Anzeige des „Passwort vergessen?“ Dialog über das Login-Formular in ein versteckten iframe veröffentlichen, bevor Sie sich mit dem Ajax-Protokollierung (in Firefox Das Kennwort wird auf der gespeicherte Passwort-Liste, so dass dieser Teil funktioniert natürlich), aber die gespeicherten Passwörter nie in nach dem Login-Bildschirm zu einem späteren geladen werden gefüllt werden Zeit. Das gleiche geschieht in Firefox und Safari.

Gibt es etwas, das ich tun kann, oder eine Funktion, die ich zu Trigger autofill anrufen kann?

UPDATE: Autofill-Werke in Safari auf ersten Seite zu laden, aber nicht, wenn der Benutzer sich abmeldet und das Login-Formular wird ohne Neuladen der Seite neu erstellt. In Firefox funktioniert es nie.

War es hilfreich?

Lösung

Neben der Formularelemente in einem form Element zu wickeln, stellen Sie sicher, dass alle Eingaben (und vielleicht sogar die Form) hat einzigartige name und id Attribute, die sich nicht verändert. Der Name soll wohl etwas beschreibend wie password für das Passwort usw., nicht wirklich sicher, in welchem ??Maße Browser verwendet diese Informationen, aber „Autosuggest“ / „Zauberstab“ Merkmale können besser funktionieren, wenn Sie einen Standardnamen verwenden.

Und natürlich sollten Sie sicherstellen, dass Sie nicht alle Autosuggest / Autofill Attribute auf false (die js Rahmen könnte aus irgendeinem Grund tun, wenn Sie verwenden).

Eine dritte Möglichkeit besteht darin, dass einige Browser vielleicht tut autofill vor Ihrem Skript lädt und schreibt das Formular auf der Seite, versuchen, eine statische HTML-Version des Formulars zu machen und sehen, ob , die funktioniert.

Die einfachste Lösung (wenn statische Formen der Arbeit) ist eine Seite neu geladen beim Abmelden zu zwingen (Sie wahrscheinlich wollen den „Zustand“ des laufenden Javascript nach dem Abmelden sowieso verwerfen, so erfrischend ist wirklich eine gute Sache)

Andere Tipps

Einige Browser benötigen „Form“ Tag lokalen Benutzernamen und Passwort Speicherung zu aktivieren. Hatte das gleiche Problem in AJAX-Anwendung, und in meinem Fall habe ich gerade hinzugefügt

<form>...</form>

-Tags.

Können Sie nicht einen ähnlichen Trick verwenden - einen iframe verwenden Sie das Formular zu laden und dann, wenn das Login-Formular Dich gesendet wird, in Wirklichkeit, senden Sie die iframe Form, die das gespeicherte Passwort enthält

.

Um das ‚Passwort‘ erhält im sichtbaren Form erscheint Ich glaube, Sie die Länge des Passworts in der iframe Form messen konnten und füllen dann das Feld Passwort der sichtbaren Form mit der gleichen Anzahl von *.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top