/ / Jak naprawić focus / klikalność textboxów XUL? - pole tekstowe, fokus, xul

Jak naprawić fokus / klikalność textboxów XUL? - pole tekstowe, fokus, xul

Na normalnej stronie internetowej <input type="text"/>W Firefoksie możesz kliknąć w dowolnym miejscu elementu, a przeglądarka "skupi się" na tym elemencie. Na XUL (rozszerzenie Firefox) <textbox> element jednak tylko klikając na lewa część krawędzie pola tekstowego skupią go; kliknięcie gdziekolwiek indziej na tym nic nie robi.

Uważam to za naprawdę denerwujące, szczególnie biorąc pod uwagę, w jaki sposóbelementy wejściowe w Firefoksie działają normalnie; Mam lepszy interfejs użytkownika ze stroną internetową niż z rozszerzeniem przeglądarki! Czy ktoś wie o sposobie naprawienia tego zachowania (myślałem, że mógłbym zrobić funkcję onClick = "function () {this.focus ()}" rzecz, ale to wydaje się tak odurzające, więc naprawdę miałem nadzieję, że jest lepszy sposób ...)

Odpowiedzi:

0 dla odpowiedzi № 1

W końcu wymyśliłem obejście, chociaż wciąż jestem zaskoczony, że nie jest to mniej hackowy sposób rozwiązania tego problemu.Jeśli ktoś ma "prawdziwą" poprawkę, z radością udzielę im odpowiedzi.

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

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

0 dla odpowiedzi nr 2

Więc ... to trochę zawstydzające, ale pomyślałem, że powinienem podzielić się tym, jak w końcu rozwiązałem problem prawidłowo. Jak się okazuje, elementy XUL zwykle koncentrują się na kliknięciu. Problem, jak odkryłem, polegał na tym, że jeśli umieścisz te elementy wewnątrz innego elementu, w którym nie powinny znajdować się, następnie przestają być właściwie skupieni. W moim przypadku miałem **** westchnienie **** następujące:

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

zawijając całą zawartość mojego dokumentu (i nawet ich nie zamknąłem, był to po prostu straszny, nie zauważony błąd kopiowania / wklejania).

Tak więc, jeśli uważasz, że potrzebujesz kodu w mojej pierwszej odpowiedzi, najpierw sprawdź pliki XUL: problem jest prawdopodobnie Twój własny kod.