Formularios e filtros HTML

You can use all control elements and form events in HTML documents. There have been numerous events to date (for example, focus events), which have not been changed. They will continue to be imported and exported as ONFOCUS, ONBLUR, and so on for JavaScript and as SDONFOCUS, SDONBLUR, and so on for LibreOffice Basic.

Para o resto dos eventos úsanse nomes xenéricos compostos polo ouvinte do evento (Listener) e o nome do método do evento. Un evento rexistrado como XListener::method expórtase como

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

Teña en conta que XListener e os compoñentes do método desta opción distinguen entre maiúsculas e minúsculas.

A xestión de eventos de controis realízase por medio da API de LibreOffice. Se atribúe un evento a un control, rexístrase un obxecto internamente como "Listener" (Ouvinte) dun evento de control específico. Para facelo, o obxecto debe utilizar unha interface específica, como a interface XFocusListener, para poder reaccionar ante os eventos de foco. Primeiro chama o control a un método especial da interface do ouvinte ao enfocarse o control. Despois, o obxecto rexistrado internamente chama ao código de JavaScript ou de LibreOffice Basic atribuído ao evento.

O filtro HTML usa xustamente esta interface de ouvinte de eventos e nome de método para importar e exportar eventos da maneira desexada. Pode rexistrar un evento de foco utilizando

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

en vez de

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

Polo tanto os eventos poden rexistrarse como se desexe, incluíndo aqueles non indicados nas caixas de lista. Para definir a linguaxe de script dos eventos, escriba a seguinte liña na cabeceira do documento:

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

Para CONTENT pode, por exemplo, usar as liñas "text/x-StarBasic" en LibreOffice Basic ou "text/JavaScript" en JavaScript. Se non indica nada, presuponse que se trata de JavaScript.

Durante a exportación, a linguaxe de script predefinida determínase en función do primeiro módulo encontrado na xestión de macros. No que se refire aos eventos, só é posíbel utilizar unha linguaxe por documento.

Axúdenos, por favor!