Вопрос или проблема
С HTML 5 появился новый атрибут под названием autocomplete
. Если он установлен как autocomplete=off
, то браузер не сохраняет пароль.
Как я могу переопределить эту настройку, не изменяя исходный код Firefox и не перекомпилируя его? Может быть, есть параметр about:config в Firefox, который я упускаю из виду, который я могу переключить – что-то вроде “игнорировать: autocomplete”?
Главная цель autocomplete=off
– обеспечить некоторый уровень безопасности для полей, которые в этом нуждаются. Если дизайнер сайта решил, что поле требует autocomplete=off
, значит, он это действительно имеет в виду. Почему вы хотите это отключить?
Краткий ответ: Нет, отключить это невозможно. Это считается функцией безопасности.
(кстати, autocomplete=off
существует во многих браузерах уже давно… оно могло стать официальной частью HTML лишь с HTML5, но используется уже очень долго, так что я бы не назвал это ‘новым’)
Существует другой способ заставить Firefox запомнить пароль благодаря Firebug: просто измените значение autocomplete на “on” и сохраните форму. Firefox покажет всплывающее окно “запомнить”, как обычно.
Подробности можно найти здесь:
- установите Firebug
- на странице с неисправным полем для пароля откройте Firebug.
- используйте синий указатель мыши на панели инструментов Firebug для выбора поля пароля
на вкладке HTML Firebug должно быть выбрано поле- двойной щелчок на “off”, чтобы изменить значение и изменить его на “on”.
- Теперь введите свой логин/пароль, как обычно, в форме на странице
- когда вы нажмете “отправить”, Firefox должен отобразить всплывающее уведомление, которое позволяет запомнить логин/пароль для этого сайта.
Теперь каждый раз, когда вы собираетесь зайти на эту страницу, Firefox будет автоматически заполнять логин/пароль, как обычно.
Следующий bookmarklet делает все формы на этой странице автозаполняемыми:
<a href="https://superuser.com/questions/303691/javascript:(function(){var fm=document.getElementsByTagName("form');for(i=0;i<fm.length;i++){fm[i].setAttribute('autocomplete','on');}})()">Автозаполнение включено</a>
Просто вставьте приведенное выше в HTML-файл, откройте его в своем браузере, перетащите ссылку “Автозаполнение включено” на панель закладок, посетите страницу с проблемной формой и нажмите на закладку “Автозаполнение включено”, чтобы форма запомнила ваш ввод.
Если у вас есть Firefox, вы можете установить Greasemonkey и установить этот аддон, который повторно активирует автозаполнение для формы. Это не идеально, но в целом работает. Для сайтов, где это не полностью работает, вы можете создать пользовательский скрипт Greasemonkey.
Самый простой способ сделать это:
найдите файл nsLoginManager.js в папке “Mozilla Firefox”, например:
C:\Program Files\Mozilla Firefox\nsLoginManager.js
найдите функцию
_isAutocompleteDisabled : function (element) {
if (element && element.hasAttribute(”autocomplete”) &&
element.getAttribute(”autocomplete”).toLowerCase() == “off”)
return true;
return false;
},
теперь измените первое возвращаемое значение с true на false так:
_isAutocompleteDisabled : function (element) {
if (element && element.hasAttribute(”autocomplete”) &&
element.getAttribute(”autocomplete”).toLowerCase() == “off”)
return false; //Это строка кода, которая изменилась.....
return false;
},
Теперь сохраните это изменение и перезапустите Firefox.
Как подробно описано в этой таблице, так же как и в большинстве современных браузеров, команда Firefox давно решила игнорировать тег autocomplete=off
для форм входа. Вы можете найти соответствующую тему в этом трекере ошибок, закрытом 10 лет назад, откуда я цитирую:
- Изменение делает так, что
autocomplete=off
не останавливает менеджер паролей. Обычное автозаполнение форм может быть отключено, как обычно.- Менеджер паролей всегда запрашивает, если он хочет сохранить пароль. Пароли не сохраняются без разрешения пользователя.
Соответствующее поведение может быть изменено в about:config
, с помощью переменной
signon.storeWhenAutocompleteOff
.
Более того, по умолчанию autocomplete=off
также игнорируется для адресов или кредитных карт. Есть два параметра, которые вы можете найти в about:config
:
- extensions.formautofill.addresses.ignoreAutocompleteOff
- extensions.formautofill.creditCards.ignoreAutocompleteOff
Тем не менее, если автозаполнение не должно работать на каком-то сайте, возможно, есть исключение, сохраненное в ваших настройках. Перейдите в about:preferences#privacy
и прокрутите вниз до passwords
, затем нажмите на exceptions
.
Вы также можете открыть свою историю, щелкнуть правой кнопкой мыши на конкретном сайте и выбрать “Забыть об этом сайте”, чтобы очистить любые настройки (включая куки, пароли и т. д.), которые вы могли установить ранее.
.
Ответ или решение
К сожалению, игнорирование атрибута HTML5 autocomplete="off"
в Firefox невозможно сделать простым переключением в настройках браузера. Однако существует несколько стратегий, которые могут помочь в достижении таковой цели, если у вас есть на это необходимость.
Понимание проблемы
Атрибут autocomplete
был представлен в HTML5 с целью повышения безопасности веб-форм. Установка значения autocomplete="off"
позволяет разработчикам блокировать автозаполнение полей данных, что, в частности, имеет значение для полей авторизации, таких как пароли. Эта функция предназначена для защиты конфиденциальных данных пользователей и предотвращения их случайного сохранения.
Несмотря на это, существуют способы обойти ограничения, которые накладывает этот атрибут, если пользователю действительно необходимо, чтобы Firefox сохранял данные для определённых форм.
Способы игнорирования autocomplete="off"
1. Использование инструмента Firebug
Одним из наиболее простых способов обойти это ограничение является использование инструмента, такого как Firebug. Этот подход требует следующих действий:
- Установите расширение Firebug.
- Откройте страницу, на которой находится проблемное поле.
- Запустите Firebug и выберите элемент поля пароля.
- Измените значение атрибута
autocomplete
сoff
наon
. - Заполните форму и отправьте ее. Firefox должен предложить сохранить пароль.
2. Использование закладок
Также можно создать закладку, которая изменяет атрибуты autocomplete
у всех форм на странице. Вот код, который можно использовать:
<a href="javascript:(function(){var fm=document.getElementsByTagName('form');for(i=0;i<fm.length;i++){fm[i].setAttribute('autocomplete','on');}})()">Autocomplete on</a>
Сохраните данный код в файл HTML, откройте его в браузере, перетащите ссылку в панель закладок и нажмите на нее на страницах с проблемными формами.
3. Использование Greasemonkey
Для более продвинутого управления можно использовать расширение Greasemonkey, установив пользовательский скрипт, который будет автоматически изменять атрибут autocomplete
.
С помощью этого метода вы сможете настроить поведение форм на тех сайтах, где это необходимо.
4. Изменение настроек в about:config
Для версий Firefox актуально следующее:
- Перейдите в
about:config
в адресной строке и найдите параметрsignon.storeWhenAutocompleteOff
. - Убедитесь, что он установлен в
true
, чтобы браузер продолжал предлагать сохранение паролей, даже если поле имеет значениеautocomplete="off"
.
Также можно проверить и изменить параметры:
extensions.formautofill.addresses.ignoreAutocompleteOff
extensions.formautofill.creditCards.ignoreAutocompleteOff
Эти настройки позволят игнорировать атрибут autocomplete
для адресов или кредитных карт.
Заключение
Важно отметить, что обойти ограничения, установленные веб-разработчиками, не всегда является рекомендуемой практикой, так как они могут иметь свои причины для настройки форм таким образом. Однако если у вас есть необходимость в сохранении паролей или автозаполнении, вышеперечисленные методы могут быть полезны.
Всегда подходите к подобным изменениям с осторожностью и пониманием возможных рисков для безопасности ваших данных.