2013-09-05 4 views
3

Подходящее устройство представляет собой любой Android-телефон. Я открываю firefox (btw, chrome не вызывает этого), перейдите на веб-сайт, например google search или IMDB, а затем введите что-то в поле поиска. Собственная автозаполнение активируется над клавиатурой, как только я набираю первую букву. Но я не получаю предложения, расположенные ниже окна поиска! Только после того, как я удалю собственный автозагрузчик (или автозаполнение), выпадающее меню с поддержкой javascript появится под поиском.Мобильная нативная клавиатура блокирует загрузку виджета автозаполнения javascript

В поисках Google, однако, браузер автозаполнение работает сразу и появляется вместе с родным автозаполнением:

Google's autocomplete overcomes the native autocomplete

Но в IMDB (или другие, как Amazon), браузер автозаполнение задерживаются или блокируется автозаполнение телефона (и не появляется до тех пор, пока пользователь не выберет предложение телефона или очищает его): IMDB's autocomplete delayed by native autocomplete

Я думаю, что Google использует «KeyDown» события для обнаружения пользователя ввод, но не знает, как, потому что это было не совсем работает аф Я попытался написать простой автозаполнение самостоятельно. Атрибут «autocomplete = off» (либо в форме, либо в целевом поле ввода) также не помогает.

Как можно запретить автозагрузку встроенной клавиатуры или заблокировать автозагрузку браузера?

ответ

0

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

Если вы используете jQuery/zepto, сделайте это.

$(selector).bind('input', function(){ 
    //autocomplete logic 
}); 

В нативных JS

document.getElementById(selector).addEventListener('input', function(){ 
    //autocomplete logic 
}); 
Смежные вопросы