document.activeElement.matches(:focus) 为假。为什么是这样?

document.activeElement.matches(:focus) is false. why is this?

我有一个李:

<li _ngcontent-c21="" class="accordion li" tabindex="0" aria-expanded="true">

我已经选择了。 document.activeElement 其实就是这个元素。然而,

document.activeElement.matches(':focus')
false

让事情变得更加奇怪:

document.activeElement.focus()
undefined
document.activeElement.matches(':focus')
false

这是怎么回事? (这是 chrome,顺便说一句)

如果这发生在控制台中,则控制台是焦点,而不是元素或页面;因此,只要控制台处于焦点状态,元素就无法匹配 :focus。这不是 Element#matches() 的限制,而是 :focus 工作方式的副作用 — :focus CSS 样式规则的行为方式相同。

如果您在控制台中设置超时并在超时到期前重新聚焦页面,或者在页面内的 <script> 中调用这些函数,document.activeElement 应该匹配 :focus不出所料。