Отключить сохранение пароля в связке ключей Safari 7.0.2

0

Как я могу отключить сафари от сохранения пользователя/пароля из формы с помощью html или javascript?
У меня возникла проблема, связанная с Safari 7.0.2, где вы можете сохранить пользователя/передать цепочку ключей, и когда вы переходите в ту же форму, она автоматически переопределяет эти поля? Лично я считаю, что это ужасное поведение. Я не думаю, что поля должны быть переопределены.

Я создал изолированную версию, которую вы можете демо здесь. http://dev.davidsalazar.com/issues/safari-autofill/

Шаги по тиражированию (убедитесь, что вы используете новейшее сафари 7.0.2)

  1. Введите и нажмите кнопку "Сохранить". Он должен предложить вам сохранить в цепочку ключей, принять сохранение.
  2. Теперь нажмите на ссылку на случайные данные, и вы заметите, что сафари теперь будут переопределять эти поля с вашими ранее сохраненными полями.
Теги:
safari

3 ответа

0
Лучший ответ

Обходной путь: создать другое (поддельное) поле пароля, и Safari, вероятно, запутано им - автозаполнение будет "отключено" в этом случае

проверены в Safari 7.0.2 и 7.0.3

демо (с красным поддельным паролем): http://js.pejsa.info/~jam/safari-autofill/

<form method="post" autocomplete="off"> <input type="text" name="username" id="username" value="abc"/> <input type="password" name="password" id="password" value="def"/> <input type="submit" name="submit_btn" value="Save"/> <input type="password" id="fakePassword" style="border:0;width:10px;height:10px;background-color:red;"/> </form>

  • 0
    Вы правы, это хороший взлом, пока они не исправят это. Я использую эти стили внутри фиктивного пароля. display: inline; width: 0; height: 0; border: 0;
  • 0
    Это не работает в Safari 6.2
Показать ещё 1 комментарий
0

Я ищу эту проблему до дня для своего проекта. и, наконец, я нашел решение с плагином ниже.

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

Это причина. Современный браузер (имеет брелок) управляет вводом (введите пароль), когда страница загружена и сопоставлена с DOM. После того, как подключаемый модуль загрузки страницы получает вход и клонирует и удаляет исходный вход. эта операция изменяет отображение DOM. Таким образом, brovser не может получить доступ к этому элементу управления при перенаправлении страницы. Поэтому не предлагайте вам сохранять пароль.

Вы можете использовать этот плагин для этой проблемы.

Заметки:

  1. Если вы используете другой плагин, как я. Встраиваемый модуль jquery-keyboard для ввода пароля. вы shoul измените свой метод initkeyboard. потому что клавиатура управляет вашим входом и инициализируется рядом с этим входом. вы можете изменить этот метод init, как показано ниже.

смена клавиатуры

до

var _inputwidth = $(elm).parent().find('input').width();

после var _inputwidth = $ (elm).parent(). find ('input [type = text], input [type = password]'). width();

потому что подключаемый выход аналогичен этому

<input type="hidden"  id="txtPass" name="txtPass" spellcheck="false" autocomplete="off">
<input type="text"  id="txtPass" name="txtPass" spellcheck="false" autocomplete="off">
  1. Если у вас есть какое-либо событие нажатия клавиши или keydown для этого ввода, введите эти коды после инициализации подключаемого модуля. потому что это сопоставление DOM с плагином изменения

это использование плагина, как показано ниже

$('input[type=password]').disableAutocomplete();

это создатель

Этот подключаемый модуль jQuery обеспечивает включение атрибута autocomplete = off HTML в паролях (и других). Недавние браузеры решили игнорировать этот атрибут в пользу пользовательских настроек. Однако некоторые финансовые (и другие) учреждения могут иметь веские основания для обеспечения соблюдения этой практики.

jQouery Отключить автозаполнение


Старый комментарий У меня есть страница с 2 входами. один из этих паролей ввода, другой текст (форма пароля пользователя). Safari не работает с autocomplete = "off". Я использую для этой проблемы два встроенных скрытых ввода. Эти входы имеют общие имена, как показано ниже. Мой исходный пароль пользователя имеет другое имя, поэтому Safari сначала ищет цепочку ключей для получения или установки этих входов. Вы можете использовать это решение, чтобы Safari не использовала брелок для вашей защищенной страницы.

<input type="text" name="Username" style="display:none;"/>
<input type="password" name="Password" style="display:none;" />
0

это невозможно из-за нового поведения во всех браузерах - autocomplete = "off" теперь игнорируется

подробнее см. http://raesene.github.io/blog/2014/04/17/changing-times-the-end-of-autocomplete-equals-off/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню