Как предотвратить событие размытия JS в веб-наборе iOS при закрытии виртуальной клавиатуры? - PullRequest
2 голосов
/ 13 апреля 2011

Этот вопрос касается веб-приложений, а не нативного кода.

Я максимально адаптирую веб-приложение, используя медиазапросы. Позже, возможно, у меня будет время восстановить его с нуля. По историческим причинам это приложение использует Prototype и Scriptaculous. Использует класс интерфейса автозаполнения.

В Android WebKit, по крайней мере, на Android 2.2 / HTC Evo, когда я отклоняю программную клавиатуру, автозаполнение остается, и я могу выбирать из представленных вариантов. Я полагаю, что iOS снимает событие «размытия», когда я нажимаю кнопку «Готово» на виртуальной клавиатуре, и мои результаты мгновенно исчезают с экрана.

Я ищу решение этой проблемы в порядке убывания предпочтений:

1) Свойство webkit, которое я могу установить на входе, предотвращает срабатывание размытия

2) Любые существующие обходные пути Javascript, которые могут быть доступны, например, любые свойства объекта события, которые я мог бы использовать, чтобы перефокусировать элемент после увольнения виртуальной клавиатуры [что я не хочу делать, это Перефокусировка на onblur, потому что это действительно вредит бесконтактным клиентам этого сайта]

3) Другие креативные идеи, которые у вас могут возникнуть, не включая обнаружение браузера JS и безобразный взлом моего кода [мне не нужна ваша помощь с этим].

1 Ответ

0 голосов
/ 13 апреля 2011

После небольшого поиска я не думаю, что WebKit предлагает такое свойство (я могу ошибаться).Вот простой обходной путь Vanilla JS.

var userAgent = navigator.userAgent.toLowerCase();

if (userAgent.search('iphone') > -1 || userAgent.search('ipod') > -1)
{
  document.getElementById('your_textbox').onblur = function() { this.focus(); };
}

Это решение выполняет focus() даже после того, как текстовое поле запускает триггер onblur, но делает это только для MobileSafari на iPhoneи iPod Touch (iPad может быть похожим).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...