Javascript HTML:如何防止从元素移动焦点?

Javascript HTML:如何防止从元素移动焦点?,javascript,html,Javascript,Html,我有几个元素具有tabindex属性。当我点击他们之外的任何页面区域时,他们就会失去焦点 当前行为在常规桌面应用程序中,如果某个元素不可聚焦,单击该元素不会将焦点从先前聚焦的元素移开 但在HTML中并非如此:我的可聚焦元素总是失去焦点,即使我单击没有tabindex的元素 必需的行为-是否可以在HTML中防止上述行为?我希望我的元素只有在单击其他可聚焦元素时才会失去焦点,就像我上面提到的桌面应用程序中的元素一样。这是一种黑客行为,可以用更好的方式实现 逻辑 创建一个全局变量lastSelect

我有几个元素具有
tabindex
属性。当我点击他们之外的任何页面区域时,他们就会失去焦点

当前行为在常规桌面应用程序中,如果某个元素不可聚焦,单击该元素不会将焦点从先前聚焦的元素移开

但在HTML中并非如此:我的可聚焦元素总是失去焦点,即使我单击没有
tabindex
的元素


必需的行为-是否可以在HTML中防止上述行为?我希望我的元素只有在单击其他可聚焦元素时才会失去焦点,就像我上面提到的桌面应用程序中的元素一样。

这是一种黑客行为,可以用更好的方式实现

逻辑
  • 创建一个全局变量
    lastSelectedInput
    ,以存储上次访问元素的
    id
  • 添加一个类来定义边界
  • 在主体上添加一个单击事件,如果
    事件.path
    不包含边界元素,则调用
    lastSelectedInput的焦点

代码
(函数(){
var lastSelectedInput=“”;
函数bodyClick(e){
var内=假;
for(e.path中的变量i){
如果(e.path[i].className==“content”)inside=true;
}
如果(!内部){
document.getElementById(lastSelectedInput.focus();
}
}
函数输入焦点(e){
lastSelectedInput=e.target.id;
e、 停止传播()
}
函数registerEvents(){
document.getElementsByTagName(“正文”)[0]。addEventListener(“单击”,正文单击);
var inputs=document.getElementsByTagName(“输入”)
对于(变量i=0;i
.content{
利润率:15px;
背景:ddd;
边框:2倍纯色灰色;
边界半径:4px;
高度:200px;
宽度:200px;
填充物:5px;
}


它看起来像是有线的。你能把代码放进去吗@这会将焦点恢复到上一个元素(有明显的闪烁),而不是阻止焦点。