THotPDF.EvaluateLoadedFieldJavaScript Method
زیرمجموعهٔ امن و پشتیبانیشدهٔ یک action فیلد بارگذاریشده را بدون راهاندازی موتور JavaScript ارزیابی میکند
اعلان
function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
out Evaluation: THPDFJavaScriptEvaluationResult): boolean;
Result
وقتی دستکم یک action پشتیبانیشده اجرا شده باشد True برمیگرداند؛ Evaluation مقدار نتیجه، پذیرش اعتبارسنجی، تعداد عملیات و هر دلیل رد را گزارش میکند
Supported expressions
ارزیاب literalهای boolean، number، string، null، undefined و آرایه؛ خواندن field و event.value؛ اندیسگذاری آرایه؛ operatorهای حسابی، یگانی، مقایسه، برابری، منطقی short-circuit و شرطی؛ و انتساب به event.value یا event.rc را پشتیبانی میکند
allowlist شامل AFSimple_Calculate، AFRange_Validate، تبدیل number و string، parseFloat، parseInt، isNaN، برخی توابع Math، Date.parse، Date.UTC، Array.isArray و ویژگیها و متدهای محدود string و آرایه است
عملیات تاریخ قطعی و مستقل از timezone هستند: ورودی ISO-مانند بدون offset بهصورت UTC تفسیر میشود، در حالی که Z صریح و offsetهای عددی رعایت میشوند
Safety boundary
parser فقط محاسبات و اعتبارسنجی declarative محدود را میپذیرد و حلقهها، ارزیابی پویا، دسترسی به برنامه، submission، import، launch و سایر محتوای فعال را رد میکند
هر فراخوانی به ۸٬۱۹۲ بایت اسکریپت، ۳۲ statement، ۴٬۰۹۶ بایت expression، ۳۲ سطح parser، ۱٬۰۲۴ عملیات، ۶۴ آرگومان، ۱۲۸ آیتم آرایه، ۶۵٬۵۳۶ بایت رشته و ۲۶۲٬۱۴۴ بایت مقدار ردگیریشده محدود است؛ عبور از هر حد، بهصورت fail-closed و با نتیجهٔ diagnostic شکست میخورد