نطاق أحداث 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 التفاعلية وإنشاء الخصائص الغائبة الأصلي