Мне записали веб-приложение в чистом JavaScript (не предварительно генерировал HTML за исключением документа, который загружает все файлы JS).
Это приложение содержит форму входа в систему, которая создается динамично, когда document.ready событие события инициировано. Я обманываю браузер в отображение, "Помнят пароль?" диалоговое окно путем регистрации формы входа в систему в скрытый iframe перед входом в систему использования ajax (в Firefox пароль появляется в списке сохраненного пароля, таким образом, эта часть, очевидно, работает), но сохраненные пароли никогда не заполняются после экрана входа в систему, загружается снова в более позднее время. То же самое происходит в Firefox и Safari.
Есть ли что-то, что я могу сделать или некоторая функция, которую я могу вызвать для инициирования автозаливки?
ОБНОВЛЕНИЕ: автозаполните работы в Safari на начальной загрузке страницы, но не, когда пользователь выходит из системы, и форма входа в систему воссоздается без перезагрузки страницы. В Firefox это никогда не работает.
Помимо обертывания элементов формы в элемент form
, убедитесь, что все входные данные (и, возможно, даже форма) имеют уникальное имя
и id
атрибуты, которые не меняются. Имя, вероятно, должно быть описательным, например пароль
для пароля и т. Д., Не совсем уверен, в какой степени браузеры используют эту информацию, но функции «автозаполнения» / «волшебной палочки» могут работать лучше, если вы используете стандартный имя.
И, конечно же, вы должны убедиться, что не устанавливаете для атрибутов autosuggest / autofill значение false (фреймворк js может делать это по какой-то причине, если вы их используете).
Третья возможность заключается в том, что некоторые браузеры могут выполнять автозаполнение до того, как ваш скрипт загрузит и запишет форму на страницу, попробуйте создать статическую html-версию формы и посмотрите, работает ли , что .
Самое простое решение (если статические формы работают) - принудительно перезагрузить страницу при выходе из системы (вы, вероятно, все равно захотите сбросить "состояние" запущенного javascript после выхода из системы, так что обновление действительно хорошее дело)
Некоторым браузерам требуется тег "form" для включения локального хранилища имени пользователя и пароля. Была такая же проблема в приложении AJAX, и в моем случае я просто добавил
<form>...</form>
тегов.
Не можете ли вы использовать похожий трюк - использовать iframe для загрузки формы, а затем, когда форма входа отправляется, вы на самом деле отправляете форму iframe, которая будет содержать сохраненный пароль.
Чтобы заставить "пароль" отображаться в видимой форме, я думаю, вы можете измерить длину пароля в форме iframe, а затем заполнить поле пароля видимой формы тем же числом *.