Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.08.2011, 23:35
Новичок на форуме
Отправить личное сообщение для cedage Посмотреть профиль Найти все сообщения от cedage
 
Регистрация: 23.06.2009
Сообщений: 8

android keyboard
всем привет
как на js перехватить событие появления виртуальной клавы
т.е. кликнули на инпут, появилась клава... вызвали такуюто функцию

в версии андроида 2.2 она открывается по верх контента, а в версии 2.3.3 она как будто толкает контент снизу, и документ становиться совсем маленьким по высоте...
Ответить с цитированием
  #2 (permalink)  
Старый 09.08.2011, 11:32
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

А что мешает реагировать на фокус инпута?
Ответить с цитированием
  #3 (permalink)  
Старый 09.08.2011, 14:04
Новичок на форуме
Отправить личное сообщение для cedage Посмотреть профиль Найти все сообщения от cedage
 
Регистрация: 23.06.2009
Сообщений: 8

ниче не мешает, я так и делал
дело в том что инпут c autocomplete
после выбора из предложенного списка значения, фокус из поля пропадает, и появляются элементы которые скрывались по onfocus, а клава остается и места на странице от силы пикселей 20, потому как все место занимается нижним и верхним тулбарами
есть у меня подозрения что js не имеет доступа к api ф-я клавиатуры
p.s. по onfocus я прятал нижний бар
Ответить с цитированием
  #4 (permalink)  
Старый 09.08.2011, 19:13
Профессор
Отправить личное сообщение для da_ff Посмотреть профиль Найти все сообщения от da_ff
 
Регистрация: 12.05.2009
Сообщений: 317

Ну да, виртуальная клавиатура на андроидах не всегда ведет себя корректно.
Такой сомнительный вариант. А при появившейся клавиатуре размеры окна меняются? Может их проверять на изменение? Правда, надо предусмотреть поворот экрана в таком случае.
Ответить с цитированием
  #5 (permalink)  
Старый 10.08.2011, 19:01
Новичок на форуме
Отправить личное сообщение для cedage Посмотреть профиль Найти все сообщения от cedage
 
Регистрация: 23.06.2009
Сообщений: 8

Решил проблему, есть реакция на изменение размеров окна.
правда проверял на onresize в пятницу, никакой реакции не было - конец рабочей недели наверное сказывался...

вот что получилось
var dH; //высота окна браузера
			var orient = false; //переключатель, меняется при смене положения девайса горизонт/вертикаль
			$(function(){
				dH = $(".container").height(); //высота окна браузера после загрузки страницы
			});
			window.onorientationchange = function(){
				orient = true;
			}
			$(window).resize(function(){
				if(orient){
					dH = $(".container").height();
					orient = false;
					return;
				}
				var h = $(".container").height(); //текущая высота
				if(h < dH){
					//клавиатура появилась
				}else{
					//клавиатура спряталась
				}
			});
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Использование JavaScript на платформах Android и iPhone monolithed Мобильный JavaScript 32 08.05.2012 14:17
Opera Mobile - подключение user javascript на Android kukuyok Opera, Safari и др. 0 04.08.2011 13:00
Keyboard LED Control ave Общие вопросы Javascript 12 12.06.2011 23:00
как перехватить виртуальную клавиатуру в android? onkeydown не работает olegdn Events/DOM/Window 2 11.04.2011 17:08
Keyboard navigation keys && Ext.form.NumberField && Opera Ex_Soft ExtJS 2 21.12.2010 13:27