W tym artykule, zobaczymy jak rozszerzyć istniejące definicje języka XBL.
Dziedziczenie
Czasami możesz chcieć utworzyć widget XBL, który jest podobny do już istniejącego. Na przykład, powiedzmy, że chcemy utworzyć przycisk w wyskakującym okienku. Jednym sposobem jest utworzenie duplikatu już istniejącego kodu XBL dla naszego przycisku. Jednakże, byłoby lepiej rozszerzyć już istniejący kod przycisku.
Jakiekolwiek wiązanie może być powiększone o następne. Wiązanie - dziecko może dodać właściwości, metody i zdarzenia uchwytów. Wiązanie - potomne będzie miało wszystkie cechy, jakie zdefiniowane są podczas dodawania cech do wiązania, które otrzymuje w wyniku dziedziczenia (i jakieś wiązanie dziedziczy z wyższych wartości drzewa).
Do rozszerzenia istniejącego wiązania, dodaj atrybut rozszerzenia (extends
) do tagu
. Na przykład, następnie rozszerzenie wiązania tworzy pole tekstowe, które dodaje tekst https://www do początku wpisanej wartości, dzieje się tak, kiedy naciśniemy klawisz F4.binding
Przykład 1 : Źródła
<binding id="textboxwithhttp" extends="chrome://global/content/bindings/textbox.xml#textbox"> <handlers> <handler event="keypress" keycode="VK_F4"> this.value="https://www"+value; </handler> </handlers> </binding>
Tutaj XBL powiększa element
z języka XUL. URL daje nam atrybut textbox
extends
powyżej jest powiązany adresem URL z wiązaniem pola tekstowego. To znaczy, że dziedziczy wszystkie wartości i zachowania dostarczone przez wiązanie pola tekstowego. W dodatku, dodajemy uchwyt, który odpowiada na zdarzenie klawisza (keypress).
Automatyczne uzupełnianie pól tekstowych
poniżej treść już jest ok Przykład powyżej jest podobny do sposobu jak cechy automatycznego uzupełnia pracują w Mozilli. Pola tekstowe, które obsługują automatyczne uzupełnianie jest tylko z jednym wiązaniem XBL, które rozszerza podstawowe pole tekstowych.
Automatyczne uzupełnianie pól tekstowych dodaje dodatkowy uchwyt zdarzenia, tak, że kiedy adres URL jest wpisywany, to menu będzie się pokazywać prawdopodobnie automatycznie do końca. Możemy też użyć własnych aplikacji. Wystarczy, że utworzymy pole tekstowe wraz z dwoma dodatkowymi atrybutami.
<textbox type="autocomplete" searchSessions="history"/>
Ustaw type
na autocomplete
, aby dodać możliwość automatycznego uzupełniania do istniejącego pola tekstowego. Ustaw searchSessions
, aby zasygnalizować jaki typ danych szukamy. W tym przypadku, została użyta wartość history
, który szuka adresów URL w historii (możemy także użyć wartości addrbook
, aby poszukać adresów w książce adresów).
W następnym artykule, zobaczymy przykład widgetu zdefiniowanego przy pomocy języka XBL.