Inhalte

# HTML-Filter und -Formulare

In HTML-Dokumenten können sämtliche Ereignisse für Steuerelemente und Formulare verwendet werden. Die bereits zuvor zahlreich verfügbaren Ereignisse (beispielsweise Fokus-Ereignisse) haben sich nicht geändert. Sie werden weiterhin für JavaScript als ONFOCUS, ONBLUR und so weiter und für LibreOffice Basic als SDONFOCUS, SDONBLUR und so weiter importiert und exportiert.

Für alle anderen Events werden generische Namen verwendet, die aus dem Listener-Interface und Methoden-Namen des Events bestehen: Ein als XListener::method registriertes Event wird exportiert als

SDEvent-XListener-method = "/* event-code */"

Bei der XListener- und method-Komponente dieser Option ist die Groß- und Kleinschreibung zu beachten.

Die Ereignisbehandlung von Steuerelementen erfolgt über die LibreOffice-API. Wenn Sie einem Steuerelement ein Ereignis zuweisen, meldet sich intern ein Objekt als "Listener" für ein spezifisches Steuerelement-Ereignis an. Dazu benötigt das Objekt eine bestimmte Schnittstelle, beispielsweise XFocusListener für die Reaktion auf Fokus-Ereignisse. Tritt das Ereignis ein, ruft das Steuerelement eine spezielle Methode der Listener-Schnittstelle auf, beispielsweise wenn das Steuerelement den Fokus erhält. Das intern angemeldete Objekt ruft dann den JavaScript- oder LibreOffice Basic-Code auf, der dem Ereignis zugewiesen wurde.

Im HTML-Filter werden nun genau diese Listener-Schnittstellen und -Methodennamen verwendet, die es erlauben, Ereignisse nach Belieben zu importieren und zu exportieren. Ein Fokus-Ereignis können Sie also auch über

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

anstatt über

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

anmelden. Folglich lassen sich auch beliebige nicht in den Listenfeldern aufgeführte Ereignisse registrieren. Zur Angabe der Script-Sprache für die Ereignisse können Sie die folgende Zeile in den Dokument-Header einfügen:

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

Für CONTENT können Sie unter anderem "text/x-StarBasic" für LibreOffice Basic oder ein "text/JavaScript" für JavaScript verwenden. Wenn nichts angegeben ist, wird von JavaScript ausgegangen.

Beim Export wird die standardmäßige Skriptsprache auf Grundlage des ersten Moduls bestimmt, das in der Makroverwaltung gefunden wird. Für jedes Dokument ist nur eine Sprache für Ereignisse zulässig.