Как я могу узнать, имеет ли данный XULElement фокус или нет - PullRequest
1 голос
/ 21 января 2012

Я использую дополнение Firefox Keysnail.Keysnail добавляет подсказку (xul:textbox) внизу, и я хочу знать, находится ли фокус на этой подсказке или нет.

Провел исследование и нашел способ использования document.activeElement, но он не работает,document.activeElement возвращает HTMLInputObject, когда фокус на подсказке, в то время как текстовое поле с помощью document.getElementByID возвращает XULElement.

1 Ответ

2 голосов
/ 21 января 2012

document.activeElement - правильный способ получить сфокусированный элемент. Причина, по которой он возвращает неожиданное значение для вас - каждый тег xul:textbox имеет анонимный (то есть: невидимый для обычных методов DOM) тег html:input как его дочерний элемент, и ввод с клавиатуры фактически обрабатывается этим тегом html:input , document.getElementById("textbox-id").inputField даст вам это поле ввода HTML. Или вы можете пойти другим путем: document.getBindingParent(document.activeElement) должен дать вам элемент xul:textbox.

Документация: document.activeElement , document.getBindingParent ()

...