Как исправить фокусировку / кликабельность текстовых полей XUL? - PullRequest
0 голосов
/ 20 июня 2010

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

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

Ответы [ 2 ]

0 голосов
/ 13 августа 2010

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

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

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

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

0 голосов
/ 22 июня 2010

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

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

function focusFunction(id) {
  document.getElementById(id).focus("")
}
...