Браузеры поддерживают автоматическое заполнение для ajax загруженные формы входа в систему вообще?

Моя проблема, что браузеры (IE&FF) автоматическое заполнение не работают на мою форму входа в систему.

У меня есть веб-приложение с CakePHP и jQuery. Позволить посетителям входить в систему/регистрировать незаметно. Форма входа в систему в отделении, которое загружается через Ajax. (Это позволяет войти в систему без перезагрузки страницы.)

Браузеры действительно распознают его как поле входа в систему, поскольку они предлагают мне сохранять учетные данные при нажатии на вход в систему. И они действительно сохраняют имя пользователя/пароль, поскольку они появляются между сохраненными в настройках браузера. Но сохраненное имя пользователя никогда не вводится автоматически. Они не кажутся предварительно вводимыми, когда страница загружается. Когда я начинаю указывать имя пользователя, имя пользователя появляется как предложение, но даже когда Вы выбираете его, пароль не вводится рядом с ним. Почему? Как я могу получить эту работу?

То, что можно протестировать его сами, вот простая форма входа в систему Ajax:

http://gablog.eu/test/ajaxlogin.html

Это загружает следующую форму входа в систему, если Вы перейдете к URL ниже, то автоматическое заполнение будет работать на просто простую форму, таким образом, это не будет проблема с самой формой, а скорее что это - загруженный Ajax: http://gablog.eu/test/loginform.html

Расположение:

Представление загрузилось (при отсутствии входа в систему):

Разъясниться: Я не хочу использовать автоматическое заполнение Ajax, я хочу, чтобы автоматическое заполнение браузера работало на мою форму входа в систему. Это - проблема между моей формой и браузером. представление jQuery, кажется, играет второстепенную роль, поскольку имена пользователей/пароли сохраняются. Для них просто не автовводят, ajax загрузил элементы HTML! (Испытательная площадка не использует представление jQuery.) Связанный вопрос: браузер автоматически заполняет/сохраняет форму не, работают в запросе ajax

19
задан Community 23 May 2017 в 12:25
поделиться

4 ответа

Автозаполнение, по крайней мере в Firefox, срабатывает во время загрузки страницы. Добавление содержимого после этого упустит окно возможностей.

Форма входа в систему крошечная. Я бы включил ее в страницу с самого начала и подумал о том, чтобы скрыть ее с помощью CSS, пока она не понадобится.

12
ответ дан 30 November 2019 в 05:04
поделиться

Если это помогает, msdn сообщает (внизу страницы ):

Примечание: если выполняются оба следующих условия:

  • Страница была доставлена ​​по HTTPS
  • Страница была доставлена ​​с заголовками или тегом META, предотвращающим {{ 1}} caching

... функция автозаполнения отключена, независимо от наличия или значения атрибута Autocomplete . Это замечание относится к IE5, IE6, IE7 и IE8.

Я обнадежил интересный момент.

.

3
ответ дан 30 November 2019 в 05:04
поделиться

Я не думаю, что вы можете заставить работать автозаполнение формы, если загрузите форму через ajax (с точки зрения безопасности я не знаю, действительно ли им можно злоупотреблять, но тот факт, что скрипт может запускаться загрузка полей на страницу, чтобы увидеть, какие данные будут вставлены, мне не очень нравится).

По возможности, лучшим вариантом было бы добавить условный блок в файл php и включить форму или нет, в зависимости от того, вошел ли пользователь в систему или нет. Если по какой-то причине вы не можете этого сделать, вы можете попробовать выполнить document.write () вместо вызова ajax (и да, использование document.write некрасиво :)

1
ответ дан 30 November 2019 в 05:04
поделиться

Я вижу случай, когда форма входа в систему должна быть извлечена с помощью ajax - если остальная часть веб-сайта загружается как статический HTML (кеш). Форма входа (или данные авторизованного пользователя) не может отображаться статически.

Итак, ваше решение состоит в том, чтобы вытащить форму сразу после объявления (конечного тега) элемента DOM, который служит родительским элементом для html-формы логина, полученной с помощью ajax, например:

<div id="loginforms_parent"></div>
<script language="javascript">
    /* ajax request and insert into DOM */
</script>

И браузер имеет форму в DOM onLoad. Протестировано, в этом случае firefox выполняет автозаполнение.

0
ответ дан 30 November 2019 в 05:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: