HPDFXFAExecuteJavaScriptEvent
Unit: HPDFXFAEventScript
Declaration
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;
Adfærd
Afvikler et event mod et live virtuelt formular-DOM og returnerer validerede mutationsrecords uden at ændre kalderdokumentet
Bindings leverer host-konteksten, og SelfIndex vælger this; Options.EnableJavaScript skal være True
Script- og rå bindingstekst er UTF-8-bytes, dekodet eksplicit til JavaScript-kilden og quotede kontekst i stedet for at fortolkes med operativsystemets ANSI code page; literal græsk, supplementary scalars og Unicode-linjeseparatorer beholder deres eksakte værdi
Bruger den medfølgende afgrænsede QuickJS-motor eller Options.JavaScriptEvaluator med script-, kontekst-, hukommelses-, stack-, interrupt-, tids-, operations- og outputbudgetter
Returnerer True kun, når motorafvikling og outputvalidering lykkes; mislykket afvikling rydder Actions og rapporterer Diagnostic
TXFAWidgetRuntime validerer og afspiller handlinger inden for sin egen snapshot-transaktion; direkte kaldere skal levere ækvivalent transaktionel håndtering
Den native motor kompilerer genbrugelig event support-kode én gang pr. sessionsmotor, mens hvert kald leverer sin aktuelle bindingsvektor, event-krop, grænser og registrerede host-, locale-, beregnings- og XML-responser; separate sessioner og gentagne script-objekter beholder uafhængig tilstand
Support-initialisering, event-afvikling, suspension-retries og rollback-genopbygning deler den originale forløbet tidsfrist; custom JavaScriptEvaluator-callbacks modtager en komplet selvstændig wrapper
Send en ejet TXFAJavaScriptSession for at beholde script-objekter og leksikalsk tilstand på tværs af kald; en nil-session opretter en isoleret motor til det kald
Send en ejet TXFAHostTransaction til eksplicitte applikationseffekter; suspension-retries gendanner sessionens checkpoint og forbruger registrerede responser uden at kalde fuldførte anmodninger igen
Lavniveau-kaldere skal finalisere host-transaktionen med deres dokumentudfald; host-effekter kræver den medfølgende motor og kan ikke bruge JavaScriptEvaluator
LocaleProvider leverer skrivebeskyttet locale-metadata; nil bruger Windows locale-data, mens TXFAWidgetRuntime leverer det aktuelle dokument localeSet med systemfallback
Den nærmeste ikke-tomme Locale-binding leverer den omgivende locale; en tom nedarvet locale vælger den aktuelle bruger-locale
Beregnede locale-navne suspenderer native afvikling, gendanner sessionscheckpointet og retrier med den registrerede metadata; committed replay forbruger den metadata uden at kalde provideren igen
Hvert kald tillader højst 64 navngivne locale-anmodninger, 256 UTF-16 code units pr. identifikator og 2 MiB locale-metadata og deler den forløbne script-frist; custom JavaScriptEvaluator-callbacks skal forbruge den leverede locale-data uden at anmode om native opslag
HostModel leverer et skrivebeskyttet snapshot af applikationsmetadata, sider, flag, titel og fokus; nil bruger TXFAHostModelState.Default, og returnerede host/focus/reset-handlinger kræver native transaktionel anvendelse af kalderen
Dynamisk FormCalc Eval suspenderer for native kompilering og retrier med registrerede kompilerede responser inden for samme frist; custom JavaScriptEvaluator-callbacks kan ikke servicere disse anmodninger
Pointeren læses synkront og tilbageholdes eller skrives aldrig; TXFAWidgetRuntime sender sin aktuelle tilstand og anvender mutationer inden for sin dokument-snapshot-transaktion
Den afviklende bindings EventActivity leverer xfa.event.name med event som lavniveau-fallback
Live SOM-opløsning bruger bindingshierarki og aktuel occurrence-rækkefølge, understøtter klasse- og efterkommer-selektorer samt kandidat-prædikater og vælger én udledt eller default-occurrence, når et indeks udelades
Data DOM-bindinger bygger datasets-træet, forbinder formularværdier gennem DataIdentity og understøtter dataskrivninger og tilbageholdte native data-handles; direkte kaldere anvender begge domæner og virtuelle identitetshandlinger transaktionelt
Property DOM-bindinger udstiller deklarerede property-børn samt Attributes/DefaultAttributes; direkte kaldere anvender property raw-værdi- og attributhandlinger på den matchende native formular-occurrence
Navngivne felt-aliasser er synlige gennem det ydre event-scope; lokale const-, let-, klasse-, funktions- og var-deklarationer følger normale JavaScript leksikalske regler inde i event-kroppen
Event-kroppen bevarer en indledende use strict-directive, sin formular-node this-kontekst og eksplicitte returværdier; leksikalske eller strict mode-fejl afviser samme native transaktion
Se JavaScript Event Scope for skygnings- og persistensadfærd
Relaterede API'er
Interactive Dynamic XFA Widget Runtime, FormCalc Functions og XFA Packet DOM