نطاق أحداث JavaScript في XFA

الوحدة: HPDFXFAEventScript، متكاملة عبر HPDFXFARuntime

الأسماء البديلة والتصريحات المحلية

مضيف الحدث يحل عقد النماذج المسماة المؤهلة إلى نطاق الحدث الخارجي؛ ويمكن للحدث مواصلة استخدام input.rawValue عندما يكون input حقلًا مسمىً قابلًا للوصول

جسد حدث المستخدم له نطاق دالة JavaScript خاص به، فيستطيع تصريحا const وlet وclass تظليل اسم بديل لحقل دون تعارض مع تصريحات متغيرات يولدها المضيف

const input = xfa.resolveNode("main.input");
input.rawValue = "saved";

تصريحات var والدوال المحلية أيضًا تستخدم قواعد نطاق JavaScript العادية؛ والروابط المحلية الصريحة تظلل اسمًا بديلًا خارجيًا، والرابط المعجمي يبقى غير متاح قبل تهيئته

الأسماء المحجوزة للمضيف والمعرفات غير الصالحة تبقيان مستثنيين من أسماء الحقول البديلة التلقائية؛ وxfa.resolveNode تزود بحثًا صريحًا لتلك الأسماء

سياق التنفيذ ونمط strict

this الخاص بجسد الحدث يبقى عقدة النموذج المنفذة، وتواصل قيمة return صريحةً التدفق إلى معالجة إتمام calculate أو validate

توجيه use strict الابتدائي يبقى الآن توجيه جسد المستخدم؛ وإسناد متغير غير معلن يرفع استثناءً بدل إنشاء رابط عام

"use strict";
const local = "value";
xfa.resolveNode("main.input").rawValue = local;

المعاملات والعمر

خطأ صياغة أو ReferenceError لمنطقة-الزمن-المؤقتة أو ReferenceError لنمط strict يجهض الحدث ويستعيد لقطة نموذج/datasets الأصلية الخاصة به، بما يشمل الكتابات المنفذة قبل خطأ بيئة تشغيل

الكتابات الأصلية الناجحة تنجو من إعادة تحميل XDP المحفوظة؛ والمتغيرات المحلية للحدث تخص ذلك الاستدعاء، بينما تحفظ كائنات سكربت variables حالتها المعجمية الدائمة المثبتة وسلوك closure الخاص بها

النطاق المتداخل لا يضيف استدعاءات نقل مضيف ولا يغيّر ميزانيات السكربت والذاكرة والعمليات وإعادة التشغيل

Related APIs

HPDFXFAExecuteJavaScriptEvent، بيئة تشغيل widgets التفاعلية وإنشاء الخصائص الغائبة الأصلي