XFA JavaScript Olay Kapsamı
Birim: HPDFXFAEventScript; HPDFXFARuntime üzerinden entegre
Adlandırılmış alias'lar ve yerel bildirimler
Olay host'u, uygun adlandırılmış form node'larını dış olay kapsamına çözer; input, erişilebilir bir adlandırılmış alan olduğunda bir olay, input.rawValue kullanmaya devam edebilir
Kullanıcı olay gövdesi, kendi JavaScript fonksiyon kapsamına sahiptir; böylece const, let ve class bildirimleri, host-türetilmiş değişken bildirimleriyle çelişmeden bir alan alias'ını gölgeleyebilir
const input = xfa.resolveNode("main.input");
input.rawValue = "saved";
Yerel var ve function bildirimleri de sıradan JavaScript kapsam kurallarını kullanır; açık yerel bağlamalar dış bir alias'ı gölgeleyer ve bir lexical bağlama, başlatılmasından önce kullanılamaz
Host-ayrılmış adlar ve geçersiz tanımlayıcılar, otomatik alan alias'larından hariç kalır; xfa.resolveNode, o adlar için açık arama sağlar
Yürütme context'i ve strict mode
Olay gövdesinin this'i yürüten form node'u olarak kalır ve açık bir dönüş değeri, calculate veya validate tamamlama işlemine akmaya devam eder
Başlangıçtaki use strict yönergesi artık kullanıcı gövdesinin yönergesi olarak kalır; bildirilmemiş bir değişken atamak, global bağlama oluşturmak yerine exception fırlatır
"use strict";
const local = "value";
xfa.resolveNode("main.input").rawValue = local;
Transaction'lar ve ömür
Bir sözdizimi hatası, temporal-dead-zone ReferenceError'ı veya strict-mode ReferenceError'ı olayı durdurur ve onun native form/datasets anlık görüntüsünü geri yükler; runtime hatasından önce yapılan yazımlar dâhil
Başarılı native yazımlar, kaydedilmiş XDP reload'unu yaşar; yerel olay değişkenleri o çağrıya aittir; variables script nesneleri ise belirlenmiş kalıcı lexical durumlarını ve closure davranışlarını korur
İç içe kapsam, host transport çağrıları eklemez veya script, bellek, işlem ve replay bütçelerini değiştirmez
İlgili API'ler
HPDFXFAExecuteJavaScriptEvent, Interactive XFA Runtime ve Native Absent Property Creation