Scope degli eventi JavaScript XFA
Unità: HPDFXFAEventScript, integrata tramite HPDFXFARuntime
Alias nominati e dichiarazioni locali
L'host eventi risolve i nodi modulo nominati idonei nello scope evento esterno; un evento può continuare a usare input.rawValue quando input è un campo nominato accessibile
Il corpo evento utente ha il suo scope funzione JavaScript, così le dichiarazioni const, let e class possono fare shadowing di un alias di campo senza confliggere con le dichiarazioni di variabili generate dall'host
const input = xfa.resolveNode("main.input");
input.rawValue = "saved";
Le dichiarazioni locali var e function usano anche le ordinarie regole di scope JavaScript; i binding locali espliciti fanno shadowing di un alias esterno e un binding lessicale resta non disponibile prima della sua inizializzazione
I nomi riservati dall'host e gli identificatori non validi restano esclusi dagli alias automatici dei campi; xfa.resolveNode fornisce la lookup esplicita per quei nomi
Context di esecuzione e strict mode
Il this del corpo evento resta il nodo modulo in esecuzione e un valore di ritorno esplicito continua a fluire verso l'elaborazione di completamento calculate o validate
Una direttiva use strict iniziale ora resta la direttiva del corpo utente; assegnare una variabile non dichiarata solleva un'eccezione invece di creare un binding globale
"use strict";
const local = "value";
xfa.resolveNode("main.input").rawValue = local;
Transazioni e lifetime
Un errore di sintassi, un ReferenceError da temporal dead zone o un ReferenceError in strict mode interrompe l'evento e ripristina il suo snapshot nativo form/datasets, scritture eseguite prima di un errore runtime incluse
Le scritture native riuscite sopravvivono al ricaricamento dell'XDP salvato; le variabili locali dell'evento appartengono a quell'invocazione, mentre gli oggetti script variables conservano il loro consolidato stato lessicale persistente e comportamento di closure
Lo scope annidato non aggiunge chiamate host transport né cambia i budget di script, memoria, operazioni e replay
API correlate
HPDFXFAExecuteJavaScriptEvent, Runtime XFA interattivo e Creazione nativa di proprietà assenti