Совместимо ли autocomplete = «off» со всеми современными браузерами?

84

Мне только что дали требование запретить браузерам сохранять данные, введенные в определенные поля формы. Прошло много лет с тех пор, как я занялся веб-разработкой, и это относительно новая возможность. Мне удалось найти свойство поля формы autocomplete = "off", но я не могу найти никакой документации, указывающей, какие браузеры его поддерживают. Может ли кто-нибудь указать мне в правильном направлении диаграммы атрибутов формы и совместимости с браузером?

Эмми
источник
Связанный: stackoverflow.com/questions/582244/…
ChristopheD
2
@camigreenall - не дубликат; вопрос, с которым вы связались, дал ответ на то, как это сделать; то, что я просил, было документацией о совместимости браузеров.
EmmyS

Ответы:

103

Имейте в виду, что все основные браузеры стремятся игнорировать атрибут для полей пароля .

Я могу предложить только анекдотические доказательства, но мне еще не приходилось сталкиваться с браузером, который не уважал бы autocomplete="off", этот опыт охватывает:

  • Firefox 1.5+ (Windows и Ubuntu)
  • Opera 6+ (Windows и Ubuntu)
  • Chrome v2 + (Windows и Ubuntu)
  • Epiphany 0.8 (ish) (Ubuntu)
  • Мидори (не помню, в какой версии)
  • Safari v1 + (Windows)
  • IE 4-8, Windows.

Я знаю, что скрипты Greasemonkey и, предположительно, другие пользовательские скрипты могут отключить эту autocompleteнастройку.

Я нашел пару статей, которые могут быть вам полезны:

  1. Как отключить автозаполнение формы
  2. Использование автозаполнения в html-формах
Дэвид просит восстановить Монику
источник
Спасибо за эти статьи. Я знаю, что есть сценарии, которые могут отключить эту настройку, но мы можем сделать лишь так много. Если кто-то хочет, чтобы его браузер сохранял информацию о кредитной карте на своем персональном компьютере, мы мало что можем сделать, чтобы предотвратить это. Мы действительно пытаемся предотвратить сохранение данных на общих машинах.
EmmyS
@EmmyS, нет, это правда. Потребуется достаточно технически осведомленный пользователь, чтобы взяться за решение проблемы автозаполнения, и то, что пользователи делают с вашим сайтом на своих машинах, зависит от них, а не от вас. =)
Дэвид просит восстановить Монику
@DavidThomas - Спасибо за список совместимости, не нашел подходящего от caniuse, w3c или где-либо еще. :) +1
Travis J
1
@EmmyS « Мы действительно пытаемся предотвратить сохранение данных на общих машинах ». Правильный способ сделать это - правильно настроить браузеры на общих машинах, чтобы они не хранили никакой информации между сеансами.
curiousguy
1
@curiousguy - да, это хорошая идея, если у вас есть контроль над общими машинами. В этом случае мы этого не сделали.
EmmyS
37

Менеджеры паролей теперь игнорируют autocompleteатрибут для passwordполей в основных браузерах, начиная с:

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

Manishearth
источник
Это не так. Я только что протестировал. Даже разместил дополнительное autocomplete="false"поле формы, помимо того, которое присутствовало в самом элементе формы. Никакого эффекта. Я бы сказал, что автозаполнение игнорируется всеми основными браузерами.
Евгений
6

Начиная с Chrome v34, autocomplete="off"теперь по умолчанию игнорируется.

Эту несколько спорную функцию можно отключить в конфигурации флагов, посетив chrome://flags

http://news.softpedia.com/news/Chrome-34-Seeks-to-Save-All-Your-Passwords-436693.shtml

ChrisAdmin
источник
6
Обратите внимание, что это изменение в Chrome влияет только на поля пароля . Поля без пароля по-прежнему учитывают атрибут autocomplete = "off".
Джордан Ригер,
4

Если вы можете использовать JavaScript и jQuery, вы можете разместить это при загрузке html:

$('#theform input').val('');
ITroubs
источник
Это используется внутри Joomla, который использует Mootools - есть конфликты с mootools и jquery, поэтому я не могу этого сделать. Однако я сохраню это в памяти для использования в будущем.
EmmyS
ссылаясь на документацию по mootools, вы можете сделать $$ ('. emptyThisInForm'). each (function (el) {el.value = '';});
ITroubs
1
Этот код испортит флажки и переключатели. Что может быть более элегантным, так $('#theform')[0].reset()это вернуть его к значениям по умолчанию, указанным в HTML.
Гейб Мартин-Демписи
1
Чтобы просто повлиять на поля пароля, вы можете использовать более конкретный селектор jQuery, например:$( '#theform input:password' ).val('');
Джон Хэсколл,
1

Думаю, за исключением браузера Maxthon , они известны в Китае и сейчас делают имя во всем мире. Они не очень хорошо относятся к Autotocomplete = off power. С ними это не сработает.

Ударная волна29
источник
Да, Maxthon не будет уважать autocomplete=off, но вы можете заставить его не ismxfilled='0'
заполнять
1

Некоторые решения не работают в современных браузерах.

Ссылка на другое решение приведена здесь. который работает во всех современных браузерах.

Тип ввода = пароль, не позволяйте браузеру запоминать пароль

Вы можете использовать autocomplete = "off" в данном решении.

Сарвар Хасан
источник
0

На самом деле, поля и имя пользователя, и пароль не реагируют на AutoComplete = off во всех последних браузерах.

NixRam
источник