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