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
不出所料。
我有一个李:
<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
不出所料。