程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 安卓手機軟鍵盤-HTML5 手機頁面 輸入表單被鍵盤遮擋住了

安卓手機軟鍵盤-HTML5 手機頁面 輸入表單被鍵盤遮擋住了

編輯:編程綜合問答
HTML5 手機頁面 輸入表單被鍵盤遮擋住了

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>
qingshuijun
showbo
showbo
showbo
qingshuijun
showbo
qingshuijun
qingshuijun
qingshuijun
showbo
qingshuijun
qingshuijun
showbo
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved