Join MDN and developers like you at Mozilla's View Source conference, 12-14 September in Berlin, Germany. Learn more at https://viewsourceconf.org

Dziedziczenie XBL

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 binding. Na przykład, następnie rozszerzenie wiązania tworzy pole tekstowe, które dodaje tekst http://www do początku wpisanej wartości, dzieje się tak, kiedy naciśniemy klawisz F4.

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="http://www"+value;
    </handler>
  </handlers>
</binding>

Tutaj XBL powiększa element textbox z języka XUL. URL daje nam atrybut 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).

Firefox używa innego mechanizmu automatycznego uzupełniania, niż Mozilla Suite, zobacz XUL:textbox (Firefox - automatyczne uzupełnianie)

W następnym artykule, zobaczymy przykład widgetu zdefiniowanego przy pomocy języka XBL.

Autorzy i etykiety dokumentu

Etykiety: 
 Autorzy tej strony: fscholz, teoli, Mgjbot, Ptak82
 Ostatnia aktualizacja: fscholz,