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