THotPDF.EvaluateLoadedFieldJavaScript Method
Ewaluuje obsługiwaną, bezpieczną część jednej akcji pola z załadowanego dokumentu, bez uruchamiania silnika JavaScript
Deklaracja
function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
out Evaluation: THPDFJavaScriptEvaluationResult): boolean;
Wynik
Zwraca True, gdy wykonano co najmniej jedną obsługiwaną akcję; Evaluation raportuje wartość wynikową, akceptację walidacji, liczbę operacji i powód ewentualnego odrzucenia
Obsługiwane wyrażenia
Ewaluator obsługuje literały boolean, number, string, null, undefined i array; odczyty pól oraz event.value; indeksowanie tablic; operatory arytmetyczne, jednoargumentowe, porównania, równości, logiczne short-circuit i warunkowe; oraz przypisanie do event.value lub event.rc
Allowlista obejmuje AFSimple_Calculate, AFRange_Validate, konwersje liczb i stringów, parseFloat, parseInt, isNaN, wybrane funkcje Math, Date.parse, Date.UTC, Array.isArray oraz ograniczone właściwości i metody stringów i tablic
Operacje na datach są deterministyczne i niezależne od strefy czasowej: wejście w stylu ISO bez offsetu jest traktowane jako UTC, natomiast jawne Z i numeryczne offsety są honorowane
Granica bezpieczeństwa
Parser akceptuje wyłącznie ograniczone, deklaratywne obliczenia i walidacje, a odrzuca pętle, dynamiczną ewaluację, dostęp do aplikacji, wysyłkę, import, uruchamianie i inną aktywną zawartość
Każde wywołanie ma limity: 8192 bajty skryptu, 32 instrukcje, 4096 bajtów wyrażeń, 32 poziomy parsera, 1024 operacje, 64 argumenty, 128 elementów tablicy, 65536 bajtów stringów i 262144 bajty śledzonych wartości; przekroczenie któregokolwiek limitu kończy się bezpiecznym błędem z diagnostyką