таймеры Android-браузера при открытой клавиатуре - PullRequest
4 голосов
/ 04 февраля 2011

Я столкнулся с этой проблемой, когда асинхронные функции не выполняются, когда в браузере Android открыта программная клавиатура.

Например:

<input type='text' id='foo'/>
....
document.getElementById("foo").addEventListener("keyup", function() {
window.setTimeout(function() { alert("1"); }, 20);
}, false);

Вы никогда не увидите предупреждение, если вы будете сосредоточены на вводе текста. Это верно и для обратных вызовов xhr. Если вы попытаетесь сделать ajax-запрос, запрос будет отправлен, но обратный вызов oncomplete никогда не будет запущен до тех пор, пока вы не введете в текстовое поле другой символ.

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

Любое понимание приветствуется, спасибо

1 Ответ

0 голосов
/ 09 сентября 2011

Использование новейшей библиотеки jquery в стиле

$("#inputnum").keyup(function(e){
  if (e.keyCode != '13') {
    $("#outputarea").slideUp('slow');
  };
});

заставляет элемент, выбранный с помощью "#outputarea", перемещаться вверх каждый раз, как только я набираю любую букву на программной клавиатуре или аппаратной клавиатуре. Может быть, вы хотите попробовать jquery lib? Кросс-браузерная совместимость - главная причина, по которой я продолжаю к ней возвращаться.

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