如何使用 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...
}
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...
}