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

Související API