Spis treści
Indeks 🔎︎

# Filtry HTML i formularze

W dokumentach HTML są obsługiwane wszystkie elementy sterujące i zdarzenia formularzy. Określone dotychczas liczne zdarzenia (np. zdarzenia dotyczące fokusu) nie zostały zmienione. Nadal są importowane i eksportowane jako zdarzenia ONFOCUS, ONBLUR itp. języka JavaScript oraz SDONFOCUS, SDONBLUR itd. języka LibreOffice Basic.

Dla pozostałych zdarzeń stosowane są nazwy ogólne w postaci interfejsu Listener i nazwy metody: Zdarzenie zarejestrowane jako XListener::metoda jest eksportowane jako

SDEvent-XListener-metoda = "/* kod zdarzenia */"

W składnikach nazwy "Xlistener" i "metoda" jest rozróżniana wielkość liter.

Obsługa zdarzeń związanych z formantami jest wykonywana za pośrednictwem interfejsu API LibreOffice. W przypadku przypisania zdarzenia do formantu obiekt rejestruje się wewnętrznie jako "Listener" zdarzenia formantu. W tym celu obiekt musi korzystać z określonego interfejsu - na przykład XFocusListener. Dzięki temu może reagować na zdarzenia związane z uaktywnianiem (fokus). Po wystąpieniu zdarzenia, tzn. uaktywnieniu formantu, formant wywołuje specjalną metodę interfejsu Listener. Następnie wewnętrznie zarejestrowany obiekt wywołuje kod JavaScript lub LibreOffice Basic przypisany do zdarzenia.

Obecnie filtr HTML korzysta z tych samych interfejsów Listener i nazw metod, dzięki czemu można dowolnie importować i eksportować zdarzenia. Zdarzenie fokusu można zarejestrować, wpisując kod w postaci

<INPUT TYPE=text ONFOCUS="/* kod */"

nie zaś w postaci

<INPUT TYPE=text SDEvent-XFocusListener-focusGained="/* kod */"

Zdarzenia można następnie dowolnie rejestrować; dotyczy to również zdarzeń niedostępnych w polach list. Aby zdefiniować język skryptowy zdarzeń, w główce dokumentu należy umieścić następujący wiersz:

<META HTTP-EQUIV="content-script-type" CONTENT="...">

W polu CONTENT można na przykład wprowadzić wartość "text/x-StarBasic" (LibreOffice Basic) lub "text/JavaScript" (JavaScript). Jeśli nie wprowadzono nazwy języka skryptowego, przyjmuje się, że kod jest w języku JavaScript.

Podczas eksportowania domyślny język skryptowy jest definiowany na podstawie pierwszego modułu znalezionego przez funkcję zarządzania makrami. W kontekście obsługi zdarzeń w jednym dokumencie można stosować tylko jeden język.