Как исправить фокус / кликабельность текстовых полей XUL?

На нормальной веб-странице <input type='text'/>в Firefox вы можете щелкнуть в любом месте элемента, и браузер "сфокусируется" на этом элементе. На XUL (расширение Firefox) <textbox> элемент, однако, только щелкая по крайним левым краям части текстового поля будет фокусировать его; щелкнув где-нибудь еще, ничего не происходит

Я нахожу это действительно раздражающим, особенно учитывая, как элементы ввода в Firefox работают нормально; У меня был бы лучший интерфейс с веб-страницей, чем с расширением браузера! Кто-нибудь знает способ исправить это поведение (я подумал, может быть, я мог бы сделать onClick="function(){this.focus()}" kinad вещь, но это кажется таким хакерским, так что я действительно надеялся, что было лучше путь...)

2 ответа

Решение

Так что... это немного смущает, но я подумал, что должен поделиться тем, как я наконец решил проблему должным образом. Оказывается, элементы XUL обычно фокусируются при нажатии. Проблема, как я обнаружил, заключалась в том, что если вы поместите эти элементы внутрь другого элемента, внутри которого они не должны быть, то они перестанут фокусироваться должным образом. В моем случае я вздохнул **** следующее:

<groupbox align="start">
    <caption label="Test"/>
        <radiogroup>

оборачивая все фактическое содержимое моего документа (и я даже не закрывал их; это была просто ужасная незамеченная ошибка копирования / вставки).

Итак, если вы обнаружите, что вам нужен код в моем первом ответе, сначала проверьте ваши XUL-файлы: проблема, вероятно, в вашем собственном коде.

Я наконец-то нашел обходной путь, хотя я все еще удивлен, что не существует менее хакерского способа решения этой проблемы. Если у кого-то есть "реальное" исправление, я с радостью приму ответ им.

<textbox id="foo" onclick="focusFunction('foo')"/>

function focusFunction(id) {
  document.getElementById(id).focus("")
}
Другие вопросы по тегам