在機頂盒上控制網頁焦點的方法

寫本文目的

之所以寫本文,是因爲之前在android機頂盒上處理過焦點的問題。目前看到很多IPTV的盒子中,展示的界面不再使用native app,也是因爲工作需要,所以嘗試看了一下。

默認情況下,在Android系統中會自行處理這個焦點問題。在之前接觸過的幾個平臺的系統中,發現對於Html5的支持不夠理想。Android4.2系統採用webkit內核,在Android4.4之後換成了Chromium內核,這個內核的改進,對於html5的支持力度明顯優化很多,但是通過html5test網站測試結果仍然不夠好。谷歌的Chrome對於Html5的支持度還不多,但是發現遙控器完全無法控制界面,所以交給Android自己來處理也不是一個很好的辦法,修改Android源碼的工作量也必然是很龐大的。

html界面遙控器怎麼操作

毫無疑問,這是個問題。然後自己昨天花了點兒時間測試了一下,發現在UI中元素有限的情況下,通過javascript代碼來控制按鍵行爲也是一種方法。下面是自己寫的一個測試demo:

<script>
        $(function() {
            $("button[name='but1']").focus();
            $('button').css("width", "100px");
            $("button[name='but1']").click(function() {
                $("button[name='but1']").css("background-color", "red");

            });
            $("button[name='but2']").click(function() {
                $("button[name='but2']").css("background-color", "blue");
            });
        });

        //使用jQuery監聽當前的按鍵值
        $(document).on('keydown', function(e) {
            //alert(e.which);
            switch (e.which) {
                case 37:
                    //keyCode left
                    //alert(document.activeElement.id);
                    //判斷當前獲取焦點的元素方法1
                    var actId1 = document.activeElement.id;
                    if(actId1 == 'but2') {
                        $("button[name='but1']").focus();
                    }

                    //判斷當前獲取焦點的元素方法2
                    /*var isFocus=$("#but2").is(":focus"); 
                    alert(isFocus);*/
                    break;
                case 38:
                    // key code up
                    break;
                case 39:
                    //keycode right
                    console.log("right arrow key pressed!");
                    var ha = document.hasFocus();
                    var actId = document.activeElement.id;
                    if(actId == 'but1') {
                        $("button[name='but2']").focus();
                    }
                    break;
                case 40:
                    //keycode down
                    break;  
            }
        });

        //使用js監聽當前的按鍵值方法
        /*
        window.onkeydown = function() {
            alert(window.event.keyCode)

        }*/

    </script>

    <body>
        <button name="but1" id="but1">button1</button>
        <button name="but2" id="but2">button2</button>
    </body>

代碼很簡單,只是一種思路,可能比較侷限,有更好的想法歡迎交流下。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章