Innhold

# HTML-filter og skjema

I HTML-dokumenter kan du bruke alle hendelser knyttet til kontrollelementer og skjemaer. Det er i dag mange hendelser (for eksempel fokushendelser) som ikke er endret. De vil fortsatt kunne importeres og eksporteres til JavaScript som ONFOCUS, ONBLUR, og så videre, og som SDONFOCUS, SDONBLUR, og så videre i LibreOffice Basic.

Alle andre hendelser får generelle navn bygd opp av lyttegrensesnittet og metodenavnet til hendelsen: En hendelse som er registrert som en XListener::metode blir eksportert som

SDEvent-XListener-method = "/* hendelseskode */"

Legg merke til at XListener- og metodekomponentene skiller mellom store og små bokstaver.

Hendelser med kontrollelementer blir håndtert av LibreOffice-API-et. Dersom du tilordner en hendelse til et kontrollelement, registrerer et objekt seg internt som en «lytter» til den kontrollhendelsen. For å gjøre dette, må objektet bruke et visst grensesnitt, for eksempel XFocusListener-grensesnittet, slik at det kan reagere på fokushendelser. Når hendelsen skjer, starter kontrollelementet en spesiell metode i lyttegrensesnittet når kontrollelementet får fokus. Det internt registrerte objektet starter så JavaScript- eller LibreOffice Basic-koden som er tilordnet hendelsen.

HTML-filteret bruker nå nettopp disse lyttegrensesnittene og metodenavnene slik at det kan importere og eksportere hendelser. Du kan registrere fokushendelser gjennom

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

heller enn gjennom registeret

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

Hendelser kan derfor registreres fritt, inkludert de som ikke står i listene. Du kan velge skriptspråk til hendelsene ved å skrive den følgende linjen i dokumenthodet:

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

Som CONTENT kan du for eksempel velge LibreOffice Basic med «text/x-StarBasic» eller JavaScript med «text/JavaScript». Dersom du ikke skriver inn noe, blir JavaScript valgt.

Ved eksport blir standardskriptspråket valgt ut fra den første modulen som finnes i makrohåndteringa. Bare ett språk kan brukes til hendelser i hvert dokument.