THotPDF.EvaluateLoadedFieldJavaScript Method
Vyhodnotí podporovanou bezpečnou podmnožinu jedné akce načteného pole, aniž by spustil JavaScript engine
Deklarace
function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
out Evaluation: THPDFJavaScriptEvaluationResult): boolean;
Výsledek
Vrací True, když se vykonala alespoň jedna podporovaná akce; Evaluation hlásí výslednou hodnotu, přijetí validace, počet operací a případný důvod odmítnutí
Podporované výrazy
Evaluator podporuje literály boolean, number, string, null, undefined a pole; čtení polí a event.value; indexování polí; aritmetické, unární, srovnávací, rovnostní, short-circuit logické a podmíněné operátory; a přiřazení do event.value nebo event.rc
Allowlist zahrnuje AFSimple_Calculate, AFRange_Validate, převody čísel a řetězců, parseFloat, parseInt, isNaN, vybrané funkce Math, Date.parse, Date.UTC, Array.isArray a ohraničené vlastnosti a metody řetězců a polí
Operace s daty jsou deterministické a nezávislé na časové zóně: vstup ve stylu ISO bez offsetu se interpretuje jako UTC, explicitní Z a číselné offsety se respektují
Bezpečnostní hranice
Parser přijímá jen ohraničené deklarativní výpočty a validaci a odmítá smyčky, dynamické vyhodnocování, přístup k aplikaci, odeslání, import, spouštění a další aktivní obsah
Každé volání má limit 8 192 bytů skriptu, 32 příkazů, 4 096 bytů výrazů, 32 úrovní parseru, 1 024 operací, 64 argumentů, 128 položek polí, 65 536 bytů řetězců a 262 144 bytů sledovaných hodnot; překročení jakéhokoli limitu bezpečně selže s diagnostickým výsledkem