Scope för XFA JavaScript-events
Unit: HPDFXFAEventScript, integrerad via HPDFXFARuntime
Namngivna alias och lokala deklarationer
Event-värden löser kvalificerade namngivna formulärnoder in i den yttre event-scopen; ett event kan fortsätta använda input.rawValue när input är ett tillgängligt namngivet fält
Användarens event-kropp har sin egen JavaScript-funktionscope, så const-, let- och class-deklarationer kan överskugga ett fältalias utan att krocka med värdens genererade variabeldeklarationer
const input = xfa.resolveNode("main.input");
input.rawValue = "saved";
Lokala var- och funktionsdeklarationer följer också ordinarie JavaScript-scope-regler; explicita lokala bindningar överskuggar ett yttre alias, och en lexikal bindning är otillgänglig före sin initiering
Värdreserverade namn och ogiltiga identifierater utesluts fortsättningsvis från automatiska fältalias; xfa.resolveNode ger explicit uppslagning för de namnen
Körningskontext och strict mode
Event-kroppens this förblir den körande formulärnoden, och ett explicit returvärde fortsätter att flöda vidare till efterbehandlingen av calculate eller validate
Ett inledande use strict-direktiv tillhör nu användarens kropp; tilldelning av en odeklarerad variabel kastar undantag i stället för att skapa en global bindning
"use strict";
const local = "value";
xfa.resolveNode("main.input").rawValue = local;
Transaktioner och livstid
Ett syntaxfel, ReferenceError från temporal dead zone eller ReferenceError i strict mode avbryter eventet och återställer dess nativa form/datasets-snapshot, inklusive skrivningar som gjorts före ett runtime-fel
Framgångsrika nativa skrivningar överlever omläsning av sparad XDP; lokala eventvariabler tillhör det anropet, medan variables-skriptobjekt behåller sitt etablerade persistenta lexikala tillstånd och closure-beteende
Den nästlade scopèn lägger inte till host transport-anrop och ändrar inte budgetar för skript, minne, operationer och replay
Relaterade API:er
HPDFXFAExecuteJavaScriptEvent, Interaktiv XFA Runtime och Native Absent Property Creation