THotPDF.EvaluateLoadedFieldJavaScript Method
Izvršava podržani bezbedni podskup jedne učitane akcije polja bez pokretanja JavaScript engine-a
Deklaracija
function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
out Evaluation: THPDFJavaScriptEvaluationResult): boolean;
Rezultat
Vraća True kada je izvršena bar jedna podržana akcija; Evaluation prijavljuje rezultujuću vrednost, prihvatanje validacije, broj operacija i svaki razlog odbijanja
Podržani izrazi
Evaluator podržava boolean, number, string, null, undefined i array literale; čitanje polja i event.value; indeksiranje nizova; aritmetičke, unarne, poredbene operatore, operatore jednakosti, short-circuit logičke i uslovne operatore; i dodelu na event.value ili event.rc
Allowlist uključuje AFSimple_Calculate, AFRange_Validate, konverziju brojeva i stringova, parseFloat, parseInt, isNaN, izabrane Math funkcije, Date.parse, Date.UTC, Array.isArray i ograničene string i array osobine i metode
Datumske operacije su determinističke i nezavisne od vremenske zone: ISO-sličan ulaz bez ofseta tumači se kao UTC, dok se eksplicitni Z i numerički ofseti poštuju
Bezbednosna granica
Parser prihvata samo ograničena deklarativna izračunavanja i validaciju, a odbija petlje, dinamičko izvršavanje, pristup aplikaciji, slanje, uvoz, pokretanje i drugi aktivan sadržaj
Svaki poziv je ograničen na 8,192 bajta skripte, 32 naredbe, 4,096 bajtova izraza, 32 nivoa parsera, 1,024 operacije, 64 argumenta, 128 stavki niza, 65,536 bajtova stringa i 262,144 bajta praćenih vrednosti; prekoračenje bilo koje granice bezbedno propada uz dijagnostički rezultat