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


84

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




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в полях формы, но больше не влияет на диспетчер паролей.


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

6

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

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

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


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

4

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

$('#theform input').val('');

Это используется внутри 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. С ними это не сработает.


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

1

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

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

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

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


0

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.