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