如何使用 JavaScript 方法 hasFocus() 而不是对整个文档,而是对文档内的元素?

How to use JavaScript method hasFocus() not on whole document but on element inside document?

w3schools 上的定义说可以做到,但没有说明如何做到。 片段:

if (document.getElementById(atr).hasFocus())
{
  console.log("focused");
}
else
{
  console.log("not focused");
}

我觉得这是对文档的误读。文档说:

The hasFocus() method returns a Boolean value indicating whether the document (or any element inside the document) has focus.

这并不是说 可以检查文档或您想要的任何元素,而是说它将检查文档 或任何文档中的元素 具有焦点


要提出具有类似功能的方法,您可以简单地将 document.activeElement 与您选择的元素进行比较

// Get Element
let testElement = document.getElementById('container');

// Check against .activeElement
let isFocused = (document.activeElement === dummyEl);

要在元素上执行 hasFocus 方法,您首先需要 select 像这样 document.getElementById(elementId) 然后将其放入变量中以使其更容易,例如 let testElement = document.getElementById(elementId) 和然后使用 hasFocus 方法测试此元素,如下

所示

if(document.activeElement == testElement){
//DO something...
}