Филтри за HTML и формуляри

В документи на HTML можете да ползвате всички събития на контроли и формуляри. За момента съществуват множество събития (например за фокусиране), които не са били променяни. Те ще продължат да бъдат импортирани и експортирани като ONFOCUS, ONBLUR и т.н. за JavaScript и SDONFOCUS, SDONBLUR и т.н. за LibreOffice Basic.

За всички останали събития се използват общите имена, състоящи се от интерфейса Listener и името на метода на събитието. Събитие, регистрирано като XListener::method се експортира като

SDEvent-XListener-method = "/* код-за-събитието */"

Забележете, че компонентите XListener- и method на този израз са чувствителни към регистъра.

Обработката на събития от контролите се извършва чрез LibreOffice API. Ако припишете събитие на контрола, определен обект се регистрира вътрешно като „слушател“ (Listener) за конкретно събитие на контролата. За тази цел обектът трябва да използва специален интерфейс – например интерфейса XFocusListener, чрез който може да реагира на събития, свързани с фокуса. Когато събитието се случи, контролата се обръща към специален метод на интерфейса Listener. Тогава вътрешно регистрираният обект извиква кода на JavaScript или LibreOffice Basic, който е приписан на събитието.

Сега филтърът за HTML ползва точно тези интерфейси и имена на методи за импортиране и експортиране на събития по желания начин. Можете да регистрирате събитие за фокусиране чрез

<INPUT TYPE=text ONFOCUS="/* код */"

вместо

<INPUT TYPE=text SDEvent-XFocusListener-focusGained="/* код */"

По този начин можете да регистрирате събития по желание, включително тези, които не са изброени в списъчните полета. За да укажете скриптовия език на събитията, можете да напишете следния ред в заглавния блок на документа:

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

В атрибута CONTENT можете да зададете например "text/x-StarBasic" за LibreOffice Basic или "text/JavaScript" за JavaScript. Ако не е указано нищо, се подразбира JavaScript.

По време на експортирането подразбираният скриптов език ще бъде избран според първия открит модул с макроси. В рамките на един документ може да се ползва само един език за събития.

Моля, подкрепете ни!