2010-06-20 2 views
0

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

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

ответ

0

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

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

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

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

0

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

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

function focusFunction(id) { 
    document.getElementById(id).focus("") 
} 
Смежные вопросы