HTML5 手機頁面 輸入表單被鍵盤遮擋住了
請問 大神 怎麼 js 或者 JQ 判斷安卓手機軟鍵盤的鍵盤隱藏鍵按下去了?
有使用 uexWindow 方法 能判斷到確定鍵 是 13 但是不知道這個鍵的鍵值 是什麼?
或者有什麼其他方法? 判斷窗口尺寸改變的 size 方法無效
沒有相關的事件來獲取隱藏按鈕點擊,keydown/keyup事件中獲取到的keyCode都是0,楚了你說的前往keyCode 13.
可以用計時器監視window.innerHeight高度改變來判斷。
下面的代碼在android chrome浏覽器下測試正常,javascript檢查android軟鍵盤隱藏顯示
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
<input type="text" id="txt" />
<div id="dv"></div>
<script>
var timer, windowInnerHeight;
function eventCheck(e) {
if (e) { //blur,focus事件觸發的
$('#dv').html('android鍵盤' + (e.type == 'focus' ? '彈出' : '隱藏') + '--通過' + e.type + '事件');
if (e.type == 'click') {//如果是點擊事件啟動計時器監控是否點擊了鍵盤上的隱藏鍵盤按鈕,沒有點擊這個按鈕的事件可用,keydown中也獲取不到keyCode值
setTimeout(function () {//由於鍵盤彈出是有動畫效果的,要獲取完全彈出的窗口高度,使用了計時器
windowInnerHeight = window.innerHeight;//獲取彈出android軟鍵盤後的窗口高度
timer = setInterval(function () { eventCheck() }, 100);
}, 500);
}
else clearInterval(timer);
}
else { //計時器執行的,需要判斷窗口可視高度,如果改變說明android鍵盤隱藏了
if (window.innerHeight > windowInnerHeight) {
clearInterval(timer);
$('#dv').html('android鍵盤隱藏--通過點擊鍵盤隱藏按鈕');
}
}
}
$('#txt').click(eventCheck).blur(eventCheck);
</script>