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