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