禁用页面外的焦点
Disable focus outside the page
我正在制作一个基于网页的应用程序,它只有键盘(操纵杆)导航。我使用 tabindex,但我还需要禁用对地址栏、搜索栏或页面外任何其他内容的关注。
此应用将 运行 仅在一台特定设备上运行,因此可以(实际需要)禁用某些功能。
可能吗?
解决这个问题很酷。
EDIT : 添加了向后的 [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();
}
});
我正在制作一个基于网页的应用程序,它只有键盘(操纵杆)导航。我使用 tabindex,但我还需要禁用对地址栏、搜索栏或页面外任何其他内容的关注。
此应用将 运行 仅在一台特定设备上运行,因此可以(实际需要)禁用某些功能。
可能吗?
解决这个问题很酷。
EDIT : 添加了向后的 [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();
}
});