禁用页面外的焦点

时间:2016-06-26 20:53:21

标签: javascript jquery navigation focus tabindex

我制作了一个基于网页的应用程序,该应用程序只有键盘(操纵杆)导航。我使用tabindex,但我还需要关注地址栏,搜索栏或页面外的任何其他内容。

此应用仅在一个特定设备上运行,因此可以(实际上需要)禁用某些功能。

有可能吗?

1 个答案:

答案 0 :(得分:1)

这是一个很难解决的问题。

编辑:添加了向后[shift] + [tab]。

试试这个脚本,(working Fiddle here):

var firstInputObj;
var lastInputObj;

$("input").each(function(){
    if($(this).attr("tabIndex")=="1"){
        firstInputObj=$(this);
    }
    lastInputObj=$(this);

});
$(firstInputObj).focus();

// tab (forward)
$(lastInputObj).on("keydown",function(e){
    if(!e.shiftKey && e.which==9){
        e.preventDefault();
        $(firstInputObj).focus();
    }
});

// Shift tab (backward)
$(firstInputObj).on("keydown",function(e){
    if(e.shiftKey && e.keyCode == 9) {
        e.preventDefault();
        $(lastInputObj).focus();
    }
});