THotPDF.EvaluateLoadedFieldJavaScript Method

在不启动 JavaScript 引擎的前提下,对某个已加载字段动作中受支持的安全子集求值

声明

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

结果

至少执行了一个受支持的动作时返回 True;Evaluation 会报告得到的值、校验是否通过、操作计数以及任何拒绝原因

Supported expressions

求值器支持 boolean、number、string、null、undefined 和数组字面量;字段读取和 event.value 读取;数组索引;算术、一元、比较、相等、短路逻辑和条件运算符;以及对 event.value 或 event.rc 的赋值

allowlist 包括 AFSimple_Calculate、AFRange_Validate、数字与字符串转换、parseFloat、parseInt、isNaN、部分 Math 函数、Date.parse、Date.UTC、Array.isArray,以及有界的字符串和数组属性与方法

日期运算是确定性的,且与时区无关:不带偏移的类 ISO 输入按 UTC 解释,显式的 Z 和数值偏移则会被遵循

Safety boundary

解析器只接受有界的声明式计算和校验,会拒绝循环、动态求值、应用访问、提交、导入、启动以及其他主动内容

每次调用最多 8,192 个脚本字节、32 条语句、4,096 个表达式字节、32 层解析层级、1,024 次操作、64 个参数、128 个数组项、65,536 个字符串字节和 262,144 个被跟踪值的字节;超出任一限制都会失败关闭,并返回诊断结果

相关 API