Какие эвристические алгоритмы использует Chrome для принятия решения о сохранении данных формы входа и их автоматическом заполнении при следующем посещении?
Если Chrome не сохраняет учетные данные в определенной форме, какие могут быть причины? Я знаю, что:
- поля имени пользователя и паролядолжен иметь
autocomplete="on"
; - формадолжен иметь
method="POST"
.
Экспериментально этого недостаточно: у меня есть страница входа (приватная, извините, но суть кода ниже), которая соответствует обоим критериям и на которой учетные данные не заполняются автоматически.
Вот моя конкретная проблема. Я решил ее другим способом (установивАвтозаполнениеи заставив его ввести мои учетные данные в форму), но мне все равно хотелось бы знать, почему Chrome не предлагает сохранить учетные данные.
Веб-сайт (не написанный мной и не общедоступный) требует имя пользователя и пароль. Он использует довольно стандартную (на мой неосведомленный взгляд) форму, которая выглядит так (я опустил много вложенного <div>
и прочего, а атрибуты и функции, показанные здесь, fooXXX
были переименованы мной).
<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>
Я хочу, чтобы мой браузер запомнил мои учетные данные для этого сайта. Функция включена в браузере, но есть что-то странное в этом сайте, из-за чего и Firefox, и Chrome не предлагают запомнить имя и пароль.
Я написал пользовательский скрипт (скрипт Greasemonkey в Firefox, распакованное расширение в Chrome) для изменения autocomplete="off"
на autocomplete="on"
:
document.querySelector("#foo_user").setAttribute("autocomplete", "on");
document.querySelector("#foo_pass").setAttribute("autocomplete", "on");
В Firefox это дает желаемый эффект: Firefox предлагает запомнить пароль, и при следующем посещении страницы входа мои учетные данные заполняются автоматически.
В Chrome (27.0.1453.93, Linux) такой удачи нет. Мне не предлагается вспомнить пароль, и я не получаю историю для поля имени пользователя. Я подтвердил, что скрипт выполняется, проверив элементы input
, они показывают autocomplete="on"
.
Я попробовал добавить эти строки в свой пользовательский скрипт, но они не улучшили ситуацию.
document.querySelector("#foo_user").removeAttribute("onkeyup");
document.querySelector("#foo_pass").removeAttribute("value");
Чем эвристика Chrome отличается от Firefox и как заставить его запомнить мои учетные данные?
решение1
Использоватьавтозаполнение=вклрасширение.
Изменяет «autocomplete=off» на «autocomplete=on» на веб-страницах, чтобы ваши пароли запоминались.
решение2
Я нашел флаг, который, кажется, решает проблему автозаполнения при поиске новых флагов. В chrome://flags есть флаг с названием «Включить обнаружение входа». Переключите его на «Отключено», и это должно (по крайней мере, пока эксперимент не будет удален) решить вашу проблему. (В Chrome для iOS этот флаг не существует! Так что на этой платформе вы застряли!) А что касается ответа начтоGoogle использует, я думаю, что он использует намерения, подобные тем, что используются в Omnibox, где можно посмотреть историю, но я в этом не уверен! С уважением, Mac