XFA JavaScript Event Scope

Unit: HPDFXFAEventScript, integreret gennem HPDFXFARuntime

Navngivne aliasser og lokale deklarationer

Event-hosten opløser berettigede navngivne formular-noder ind i det ydre event-scope; en event kan fortsætte med at bruge input.rawValue, når input er et tilgængeligt navngivet felt

User event-kroppen har sit eget JavaScript funktions-scope, så const-, let- og klasse-deklarationer kan skygge et feltalias uden konflikt med host-genererede variabeldeklarationer

const input = xfa.resolveNode("main.input");
input.rawValue = "saved";

Lokale var- og funktionsdeklarationer bruger også almindelige JavaScript scope-regler; eksplicitte lokale bindinger skygger et ydre alias, og en leksikalsk binding forbliver utilgængelig før sin initialisering

Host-reserverede navne og ugyldige identifikatorer forbliver ekskluderet fra automatiske felt-aliasser; xfa.resolveNode leverer eksplicit opslag for de navne

Afviklingskontekst og strict mode

Event-kroppens this forbliver den afviklende formular-node, og en eksplicit returværdi fortsætter med at flyde til calculate- eller validate-fuldførelsesbehandling

En indledende use strict-directive forbliver nu user body-directivet; tildeling til en udeklareret variabel kaster i stedet for at oprette en global binding

"use strict";
const local = "value";
xfa.resolveNode("main.input").rawValue = local;

Transaktioner og levetid

En syntaksfejl, temporal dead zone ReferenceError eller strict mode ReferenceError afbryder eventet og gendanner dets native formular/datasets-snapshot, inklusive skrivninger udført før en runtime-fejl

Succesfulde native skrivninger overlever gemt XDP-genindlæsning; lokale event-variabler tilhører den invokation, mens variables script-objekter bevarer deres etablerede persistente leksikalske tilstand og closure-adfærd

Det nestede scope tilføjer ikke host transport-kald og ændrer ikke script-, memory-, operations- og replay-budgetter

Relaterede API'er

HPDFXFAExecuteJavaScriptEvent, Interactive XFA Runtime og Native Absent Property Creation