Как исправить фокус / кликабельность текстовых полей 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("")
}