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

问题描述 投票:0回答:3

w3schools上的定义说可以做到,但是没有显示如何做到的。摘要:

if (document.getElementById(atr).hasFocus())
{
  console.log("focused");
}
else
{
  console.log("not focused");
}
javascript focus onfocus
3个回答
0
投票

我认为这是由于对文档的误读。该文档说:

[hasFocus()方法返回一个布尔值,该值指示文档(或文档中的任何元素)是否具有焦点。

不是说可以检查文档或所需的任何元素,而是要检查文档或文件内的任何元素是否具有焦点


要提出一种具有类似功能的方法,您只需将document.activeElement与所选元素进行比较

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

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

0
投票

document.activeElement是关注的元素您可以像这样===通过document.activeElement === document.getElementById('idOfYourHtmlElement')检查活动元素默认情况下,活动元素为body


0
投票

要对元素执行hasFocus方法,首先需要像document.getElementById(elementId)这样选择它,然后将其放入变量中以使其更容易使用,例如let testElement = document.getElementById(elementId),然后使用hasFocus方法测试该元素,如< [下面

if(testElement.hasFocus()){ //DO something... }
© www.soinside.com 2019 - 2024. All rights reserved.