THotPDF.EvaluateLoadedFieldJavaScript Method

Вычисляет поддерживаемое безопасное подмножество одного action загруженного поля, не запуская JavaScript-движок

Объявление

function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
  Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
  out Evaluation: THPDFJavaScriptEvaluationResult): boolean;

Возвращаемое значение

Возвращает True, если выполнился хотя бы один поддерживаемый action; Evaluation сообщает итоговое значение, вердикт валидации, число операций и причину отказа, если она была

Поддерживаемые выражения

Вычислитель поддерживает литералы boolean, number, string, null, undefined и массивов; чтение полей и event.value; индексацию массивов; арифметические и унарные операторы, сравнение, проверку равенства, логику короткого замыкания и условный оператор; а также присваивание event.value или event.rc

Allowlist включает AFSimple_Calculate, AFRange_Validate, преобразование number и string, parseFloat, parseInt, isNaN, отдельные функции Math, Date.parse, Date.UTC, Array.isArray, а также ограниченный набор свойств и методов строк и массивов

Операции с датами детерминированы и не зависят от часового пояса: вход в ISO-подобном формате без смещения трактуется как UTC, а явные Z и числовые смещения учитываются

Границы безопасности

Парсер принимает только ограниченные декларативные расчёты и валидацию, а циклы, динамическое вычисление кода, доступ к приложению, отправку формы, импорт, запуск и прочий активный контент отвергает

Каждый вызов ограничен 8,192 байтами скрипта, 32 инструкциями, 4,096 байтами выражений, 32 уровнями парсера, 1,024 операциями, 64 аргументами, 128 элементами массива, 65,536 байтами строк и 262,144 байтами отслеживаемых значений; превышение любого лимита завершает вызов отказом с диагностическим результатом

Связанные API