เมธอด THotPDF.EvaluateLoadedFieldJavaScript
ประเมินชุดย่อยที่ปลอดภัยของ field action ที่โหลดไว้หนึ่งรายการ โดยไม่ต้องสตาร์ต JavaScript engine
การประกาศ
function EvaluateLoadedFieldJavaScript(FieldIndex: Integer;
Trigger: THPDFFormFieldActionTrigger; const InputValue: AnsiString;
out Evaluation: THPDFJavaScriptEvaluationResult): boolean;
ค่าที่ส่งกลับ
ส่งกลับ True เมื่อมี action ที่รองรับทำงานอย่างน้อยหนึ่งรายการ โดย Evaluation จะรายงานค่าที่ได้ ผลการยอมรับของ validation จำนวน operation และเหตุผลที่ปฏิเสธถ้ามี
นิพจน์ที่รองรับ
ตัวประเมินรองรับ literal แบบ boolean, number, string, null, undefined และ array การอ่านค่าฟิลด์กับ event.value การชี้ดัชนี array ตัวดำเนินการทางเลข แบบ unary การเปรียบเทียบ equality, short-circuit logical และ conditional รวมถึงการกำหนดค่าให้ event.value หรือ event.rc
allowlist ประกอบด้วย AFSimple_Calculate, AFRange_Validate ฟังก์ชันแปลง number กับ string, parseFloat, parseInt, isNaN, ฟังก์ชัน Math ที่เลือกไว้, Date.parse, Date.UTC, Array.isArray และ property กับ method ของ string กับ array ที่มีขอบเขต
การทำงานกับวันที่เป็น deterministic และไม่ขึ้นกับ timezone: อินพุตที่คล้าย ISO ซึ่งไม่ระบุ offset จะถูกตีความเป็น UTC ส่วน Z และ offset แบบตัวเลขที่ระบุชัดจะได้รับการยอมรับตามนั้น
ขอบเขตความปลอดภัย
parser รับเฉพาะการคำนวณและ validation เชิงประกาศที่มีขอบเขต และปฏิเสธ loop, dynamic evaluation, การเข้าถึงแอปพลิเคชัน, การ submit, การ import, การ launch และ active content อื่น ๆ
แต่ละครั้งมีขีดจำกัดที่ 8,192 ไบต์ของสคริปต์, 32 statements, 4,096 ไบต์ของนิพจน์, 32 ระดับ parser, 1,024 operations, 64 arguments, 128 รายการ array, 65,536 ไบต์ของ string และ 262,144 ไบต์ของค่าที่ติดตาม หากเกินขีดจำกัดใด ๆ จะ fail closed พร้อมผลลัพธ์เชิงวินิจฉัย