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;

Behavior

Voert een event uit tegen een live virtuele formulier-DOM en geeft gevalideerde mutatierecords terug zonder het caller-document te wijzigen

Bindings leveren de host-context en SelfIndex selecteert this; Options.EnableJavaScript moet True zijn

Script en raw binding-tekst zijn UTF-8-bytes, expliciet gedecodeerd voor de JavaScript-bron en de geqoutete context in plaats van geïnterpreteerd via de ANSI-codepagina van het besturingssysteem; letterlijke Griekse tekens, supplementary scalars en Unicode-regeleindes behouden hun exacte waarde

Gebruikt de meegeleverde begrensde QuickJS-engine of Options.JavaScriptEvaluator, met script-, context-, memory-, stack-, interrupt-, time-, operation- en output-budgetten

Geeft alleen True terug wanneer engine-executie en uitvoervalidatie slagen; gefaalde executie wist Actions en rapporteert Diagnostic

TXFAWidgetRuntime valideert en replayt actions binnen diens eigen snapshot-transactie; directe aanroepers moeten equivalente transactionele afhandeling bieden

De native engine compileert herbruikbare event-support-code één keer per session-engine, terwijl elke aanroep diens huidige binding-vector, event-body, limieten en geregistreerde host-, locale-, calculation- en XML-responses aanlevert; aparte sessions en herhaalde script-objecten houden onafhankelijke status

Support-initialisatie, event-executie, suspension-retries en rollback-reconstructie delen de oorspronkelijke elapsed-time-deadline; custom JavaScriptEvaluator-callbacks ontvangen een complete standalone wrapper

Geef een owned TXFAJavaScriptSession mee om script-objecten en lexicale status over aanroepen heen te behouden; een nil-session maakt een geïsoleerde engine voor die aanroep aan

Geef een owned TXFAHostTransaction mee voor expliciete application-effecten; suspension-retries herstellen de session-checkpoint en consumeren geregistreerde responses zonder voltooide requests opnieuw aan te roepen

Lower-level aanroepers moeten de host-transactie afronden met hun documentuitkomst; host-effecten vragen de meegeleverde engine en kunnen JavaScriptEvaluator niet gebruiken

LocaleProvider levert read-only locale-metadata; nil gebruikt Windows locale-data, terwijl TXFAWidgetRuntime de huidige document-localeSet met systeemfallback levert

De dichtstbijzijnde niet-lege Locale-binding levert de ambient locale; een lege geërfde locale kiest de huidige user locale

Berekende locale-namen schorten native executie op, herstellen de session-checkpoint en retryen met de geregistreerde metadata; committe replay consumeert die metadata zonder de provider opnieuw aan te roepen

Elke aanroep staat hoogstens 64 benoemde locale-requests toe, 256 UTF-16-code-units per identifier en 2 MiB aan locale-metadata, gedeeld over de elapsed script-deadline; custom JavaScriptEvaluator-callbacks moeten de meegeleverde locale-data consumeren zonder native lookups aan te vragen

HostModel levert een read-only snapshot van applicatiemetadata, pagina's, flags, titel en focus; nil gebruikt TXFAHostModelState.Default, en teruggegeven host/focus/reset-actions vragen native transactionele toepassing door de aanroeper

Dynamic FormCalc Eval schort op voor native compilatie en retryt met geregistreerde compiled responses binnen dezelfde deadline; custom JavaScriptEvaluator-callbacks kunnen deze requests niet bedienen

De pointer wordt synchroon gelezen en nooit vastgehouden of weggeschreven; TXFAWidgetRuntime geeft diens huidige status door en past mutaties toe binnen diens document-snapshot-transactie

De EventActivity van de uitvoerende binding levert xfa.event.name, met event als lower-level fallback

Live SOM-resolution gebruikt binding-hiërarchie en huidige occurrence-volgorde, ondersteunt class- en descendant-selectors en candidate-predicates, en selecteert één inferred of default occurrence wanneer een index ontbreekt

Data DOM-bindings bouwen de datasets-boom, verbinden formulierwaarden via DataIdentity en ondersteunen data-writes en behouden native data-handles; directe aanroepers passen beide domeinen en virtuele identiteitsactions transactioneel toe

Property DOM-bindings leggen gedeclareerde property-children en Attributes/DefaultAttributes bloot; directe aanroepers passen property raw-value- en attribute-actions toe op de matchende native form-occurrence

Benoemde veld-aliases zijn zichtbaar via de outer event-scope; lokale const-, let-, class-, function- en var-declaraties volgen normale JavaScript-lexicale regels binnen de event-body

De event-body behoudt een initiële use strict-directive, diens form-node this-context en expliciete return-waarden; lexicale of strict-mode-falen verwerpen dezelfde native transactie

Zie JavaScript Event Scope voor shadowing- en persistentiegedrag

Related APIs

Interactive Dynamic XFA Widget Runtime, FormCalc Functions en XFA Packet DOM