如何在元素上调用.blur方法时阻止身体获得焦点?

时间:2016-09-01 17:04:48

标签: javascript html

为什么浏览器不跟踪可聚焦元素,因此当我们在某个元素上调用blur时,之前聚焦的元素会获得焦点,而不是body

假设页面上有几个具有焦点功能的元素。第一个应该专注于负载。设置autofocus会处理此问题。稍后在某些事件中我们手动聚焦第二个元素,然后再次,稍后,在其他事件上,我们模糊第二个元素。预期的行为将是先前的焦点元素获得焦点。但实际上body元素被激活(document.activeElement === document.body

设置<body tabindex=-1>无效。

这是一个简单的演示:https://jsfiddle.net/9oenrguv/我期望的行为是:当我们点击按钮时,第一个输入聚焦后一秒钟,但是身体元素被聚焦,尽管第一个输入是先前聚焦的并且还具有自动聚焦属性。有人可以解释一下,为什么身体会集中注意力,以及是否有任何方法可以阻止这种情况?

手动跟踪前一个活动元素是实现此目的的唯一方法吗?

谢谢。

0 个答案:

没有答案