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


TML5 手機頁面 輸入表單被鍵盤遮擋住了

請問 大神 怎么 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>
<title>javascript檢查android軟鍵盤隱藏顯示</title>
<input type="text" id="txt" />
<div id="dv"></div>
<script>
   var timer, windowInnerHeight;
    function eventCheck(e) {
        if (e) { //click,focus事件觸發的
            $('#dv').html('android鍵盤' + (e.type == 'click' ? '彈出' : '隱藏') + '--通過' + e.type + '事件');
            if (e.type == 'click') {//如果是點擊事件啟動計時器監控是否點擊了鍵盤上的隱藏鍵盤按鈕,沒有點擊這個按鈕的事件可用,keydown中也獲取不到keyCode值
                setTimeout(function () {//由於鍵盤彈出是有動畫效果的,要獲取完全彈出的窗口高度,使用了計時器
                    windowInnerHeight = window.innerHeight;//獲取彈出android軟鍵盤后的窗口高度
                    timer = setInterval(function () { eventCheck() }, 100);//100ms檢查下窗口高度是否改變
                }, 500);
            }
            else clearInterval(timer);
        }
        else { //計時器執行的,需要判斷窗口可視高度,如果改變說明android鍵盤隱藏了
            if (window.innerHeight > windowInnerHeight) {//這里邏輯可以更改下,有可能其他js事件會導致高度變化,這里就只做個簡單判斷了
                clearInterval(timer);
                $('#dv').html('android鍵盤隱藏--通過點擊鍵盤隱藏按鈕');
            }
        }
    }
    $('#txt').click(eventCheck).blur(eventCheck);
    //keydown/keyup獲取按鍵值為0,keypress不執行。。
    $('#txt').keydown(function (e) { $('#dv').append('<br>keydown:' + e.keyCode); }).keyup(function (e) { $('#dv').append('<br>keyup:' + e.keyCode); }).keypress(function (e) { $('#dv').append('<br>press:' + e.keyCode); });
</script>

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM