HPDFXFAExecuteJavaScriptEvent
Jednostka: HPDFXFAEventScript
Deklaracja
function HPDFXFAExecuteJavaScriptEvent(const Script: AnsiString;
const Bindings: TXFAEventBindings; SelfIndex: Integer;
const Options: TXFAFormScriptOptions; out Actions: TXFAEventActions;
out Operations: Integer; out Diagnostic: string;
Session: TXFAJavaScriptSession= nil;
HostTransaction: TXFAHostTransaction= nil;
LocaleProvider: TXFALocaleDataProvider= nil;
HostModel: PXFAHostModelState= nil): Boolean;
Zachowanie
Wykonuje zdarzenie względem żywego wirtualnego DOM formularza i zwraca zwalidowane rekordy mutacji bez modyfikowania dokumentu wywołującego
Bindings dostarczają kontekst hosta, a SelfIndex wybiera this; Options.EnableJavaScript musi być True
Tekst skryptu i surowego bindowania to bajty UTF-8, dekodowane jawnie dla źródła JavaScript i cytowanego kontekstu zamiast być interpretowane systemową stroną kodową ANSI; literałowe greckie znaki, skalary z płaszczyzny uzupełniającej i separatory wierszy Unicode zachowują swoją dokładną wartość
Używa dostarczanego ograniczonego silnika QuickJS albo Options.JavaScriptEvaluator, z budżetami skryptu, kontekstu, pamięci, stosu, przerwań, czasu, operacji i wyjścia
Zwraca True tylko, gdy wykonanie silnika i walidacja wyjścia powiodły się; nieudane wykonanie czyści Actions i raportuje Diagnostic
TXFAWidgetRuntime waliduje i odtwarza akcje w własnej transakcji snapshotu; bezpośredni wywołujący muszą dostarczyć równoważne postępowanie transakcyjne
Natywny silnik kompiluje wielokrotnego użycia kod wspierający zdarzenia raz na silnik sesji, podczas gdy każde wywołanie dostarcza swój bieżący wektor bindowań, ciało zdarzenia, limity i nagrane odpowiedzi hosta, locale, obliczeń i XML; osobne sesje i powtórzone obiekty skryptowe zachowują niezależny stan
Inicjalizacja wsparcia, wykonanie zdarzenia, ponowienia zawieszenia i rekonstrukcja rollbacku współdzielą oryginalny deadline czasu; własne callbacki JavaScriptEvaluator otrzymują kompletny samodzielny wrapper
Przekaż posiadany TXFAJavaScriptSession, by zachować obiekty skryptowe i stan leksykalny między wywołaniami; sesja nil tworzy izolowany silnik dla tego wywołania
Przekaż posiadany TXFAHostTransaction dla jawnych efektów aplikacji; ponowienia zawieszenia przywracają checkpoint sesji i konsumują nagrane odpowiedzi bez ponownego wywoływania ukończonych żądań
Wywołujący niższego poziomu muszą finalizować transakcję hosta ze swoim wynikiem dokumentu; efekty hosta wymagają dostarczanego silnika i nie mogą użyć JavaScriptEvaluator
LocaleProvider dostarcza metadane locale tylko do odczytu; nil używa danych locale Windows, podczas gdy TXFAWidgetRuntime dostarcza bieżące localeSet dokumentu z fallbackiem systemowym
Najbliższe niepuste bindowanie Locale dostarcza otaczający locale; pusty dziedziczony locale wybiera bieżące locale użytkownika
Wyliczone nazwy locale zawieszają natywne wykonanie, przywracają checkpoint sesji i ponawiają z nagranymi metadanymi; zatwierdzony replay konsumuje te metadane bez ponownego wywoływania dostawcy
Każde wywołanie dopuszcza co najwyżej 64 nazwanych żądań locale, 256 jednostek kodu UTF-16 na identyfikator i 2 MiB metadanych locale, współdzieląc deadline skryptu; własne callbacki JavaScriptEvaluator muszą konsumować dostarczone dane locale bez żądania natywnych wyszukiwań
HostModel dostarcza snapshot tylko do odczytu metadanych aplikacji, stron, flag, tytułu i fokusa; nil używa TXFAHostModelState.Default, a zwrócone akcje host/fokus/reset wymagają natywnego transakcyjnego zastosowania przez wywołującego
Dynamiczny FormCalc Eval zawiesza dla kompilacji natywnej i ponawia z nagranymi skompilowanymi odpowiedziami w tym samym deadline; własne callbacki JavaScriptEvaluator nie mogą obsłużyć tych żądań
Wskaźnik jest odczytywany synchronicznie i nigdy nie jest zachowywany ani zapisywany; TXFAWidgetRuntime przekazuje swój bieżący stan i stosuje mutacje w własnej transakcji snapshotu dokumentu
EventActivity wykonywanego bindowania dostarcza xfa.event.name, ze zdarzeniem jako fallbackiem niższego poziomu
Żywe rozwiązywanie SOM używa hierarchii bindowań i bieżącej kolejności wystąpień, wspiera selektory klas i potomków oraz predykaty kandydatów i wybiera jedno wywnioskowane albo domyślne wystąpienie, gdy indeks jest pominięty
Bindowania Data DOM budują drzewo datasets, łączą wartości formularzy przez DataIdentity i wspierają zapisy danych oraz zapamiętane natywne uchwyty danych; bezpośredni wywołujący stosują obie domeny i akcje tożsamości wirtualnych transakcyjnie
Bindowania Property DOM wystawiają zadeklarowane dzieci właściwości oraz Attributes/DefaultAttributes; bezpośredni wywołujący stosują akcje raw-value i atrybutów właściwości do pasującego natywnego wystąpienia form
Nazwane aliasy pól są widoczne przez zewnętrzny zakres zdarzenia; lokalne deklaracje const, let, class, function i var podążają za normalnymi regułami leksykalnymi JavaScript wewnątrz ciała zdarzenia
Ciało zdarzenia zachowuje początkową dyrektywę use strict, kontekst this węzła form i jawne wartości zwrotne; niepowodzenia leksykalne albo trybu strict odrzucają tę samą natywną transakcję
Zobacz JavaScript Event Scope dla zachowania cieniowania i trwałości
Powiązane API
Interaktywny runtime widgetów dynamicznego XFA, FormCalc Functions i DOM pakietów XFA