Какова эвристика 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 и как заставить ее запомнить мои учетные данные?