Как заставить Firefox игнорировать настройку тега автозаполнения HTML 5?

Вопрос или проблема

С 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. Этот подход требует следующих действий:

  1. Установите расширение Firebug.
  2. Откройте страницу, на которой находится проблемное поле.
  3. Запустите Firebug и выберите элемент поля пароля.
  4. Измените значение атрибута autocomplete с off на on.
  5. Заполните форму и отправьте ее. 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 для адресов или кредитных карт.

Заключение

Важно отметить, что обойти ограничения, установленные веб-разработчиками, не всегда является рекомендуемой практикой, так как они могут иметь свои причины для настройки форм таким образом. Однако если у вас есть необходимость в сохранении паролей или автозаполнении, вышеперечисленные методы могут быть полезны.

Всегда подходите к подобным изменениям с осторожностью и пониманием возможных рисков для безопасности ваших данных.

Оцените материал
Добавить комментарий

Капча загружается...