我正在使用 Firefox 插件 Keysnail。
Keysnail 在底部添加了一个提示符(xul:textbox
),我想知道焦点是否在这个提示符上。
进行了研究并找到了使用 document.activeElement
的方法,但它不起作用。
当焦点位于提示上时,document.activeElement
返回 HTMLInputObject
,而通过 document.getElementByID
获取文本框时返回 XULElement
.
最佳答案
document.activeElement
是获取焦点元素的正确方法。它为您返回意外值的原因 - 每个 xul:textbox
标签都有一个匿名(意思是:对通常的 DOM 方法不可见)html:input
标签作为其子标签并且键盘输入实际上是由这个 html:input
标签处理的。 document.getElementById("textbox-id").inputField
将为您提供此 HTML 输入字段。或者你可以反过来:document.getBindingParent(document.activeElement)
应该给你 xul:textbox
元素。
关于javascript - 我怎么知道给定的 XULElement 是否有焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8955184/