为什么浏览器不跟踪可聚焦元素,因此当我们在某个元素上调用blur
时,之前聚焦的元素会获得焦点,而不是body
?
假设页面上有几个具有焦点功能的元素。第一个应该专注于负载。设置autofocus
会处理此问题。稍后在某些事件中我们手动聚焦第二个元素,然后再次,稍后,在其他事件上,我们模糊第二个元素。预期的行为将是先前的焦点元素获得焦点。但实际上body元素被激活(document.activeElement === document.body
)
设置<body tabindex=-1>
无效。
这是一个简单的演示:https://jsfiddle.net/9oenrguv/我期望的行为是:当我们点击按钮时,第一个输入聚焦后一秒钟,但是身体元素被聚焦,尽管第一个输入是先前聚焦的并且还具有自动聚焦属性。有人可以解释一下,为什么身体会集中注意力,以及是否有任何方法可以阻止这种情况?
手动跟踪前一个活动元素是实现此目的的唯一方法吗?
谢谢。