İstemci betikleri
İstemci betikleri bir ekrana animasyonların ve tıklama eylemlerinin anlatamadığı mantığı ekler: sayfa açılınca karşılama iletisi, periyodik yenilenen bir değer, bir düğme komut göndermeden önce onay. Sayfa açıkken tarayıcıda çalışırlar; bkz. Hangi betik nerede çalışır.
Başlamadan önce
- Proje, betiklerin ekleneceği sayfayla ekran editöründe açık. Betik düzenlemek Editor access (Editör erişimi) ister.
Adımlar
1. Code görünümünü açın
Editörün sağ altındaki Code'a (Kod) tıklayın (ya da F12'ye basın; Design geri döner). Code görünümü
açık betiği, File Name'ini (Dosya adı), Script Check düğmesini ve Save'i gösterir. project_main.js ile
açılır.

How to write? (Nasıl yazılır?) örnekli yerleşik betik belgesini açar.
2. Betik dosyalarını tanıyın
Explorer'da PAGES altında Common Scripts (Ortak Scriptler) klasörü project_main.js'i ve ortak kütüphane
dosyalarını tutar. Her sayfanın kendi betikleri sayfa satırının altındadır.

| Dosya | Çalışır |
|---|---|
project_main.js | Projenin her betiğinin önüne eklenir; olay işleyicileri buradadır |
<sayfa>_main.js | Sayfa açılınca |
<sayfa>_global.js | O sayfanın betiklerinin önüne eklenir |
| Tetikleyici betikleri | Tetikleyicilerinde: sayfa açılınca ya da kapanınca, periyodik, bir sinyal değişince |
| Kütüphaneler | import ile yüklenir; Common Scripts'teki kütüphaneler her sayfada kullanılabilir |
3. Tetikleyici betik ekleyin
Fareyi sayfa satırının üzerine getirip Add trigger script'e (⚡, Tetikleyici script ekle) tıklayın. Betiğe bir ad verin, Trigger'ı (Tetikleyici) seçin ve kodu yazın:
UI.toast("Hoş geldiniz, " + User.name, "info");
UI.set("Status", "text", "Sayfa açıldı: " + new Date().toLocaleTimeString());

| Tetikleyici | Çalışır |
|---|---|
onLoad | Sayfa açılınca bir kez |
onUnload | Sayfa terk edilince bir kez |
| Periodic (Periyodik) | Her Interval (ms)'de, en az 500 |
| Tag Change (Tag değişimi) | Tag Name'deki sinyal değişince |
Active (Etkin) betiği açıp kapatır. Save'e tıklayın. Sayfa satırındaki ya da Common Scripts'teki + düğmesi (Add library, Kütüphane ekle) işlevlerini diğer betiklerin içe aktardığı bir kütüphane dosyası ekler.
4. Olay işleyicisi ekleyin
Design'a tıklayın, nesneyi, örneğin bir düğmeyi, seçin ve PROPERTIES'in Events (Olaylar) sekmesini açın. Nesnenin sunduğu her olayın bir satırı vardır; tıklamalar için betiksiz tıklama eylemi için bir Action (Aksiyon) satırı da vardır.

Olayın satırına, örneğin onClick'e çift tıklayın. YTCC sayfa, nesne ve olaydan adlandırılan bir işleyiciyi,
Overview_StartButton_onClick'i, project_main.js içinde oluşturur ve açar. Satırın yeşil noktası işleyiciyi açıp kapatır;
✕ onu kaldırır. Tüm olaylar için bkz. Nesne ve sayfa olayları.
5. İşleyiciyi yazın
Ne olacağını yazın, örneğin iletiden önce bir onay:
async function Overview_StartButton_onClick(event) {
if (await UI.confirm("P101 pompası başlatılsın mı?")) {
UI.toast("Başlatan: " + User.name, "success");
}
}

Editör betik işlevlerini ve sinyal adlarını yazarken tamamlar; bkz. İstemci betiği API'si. Nesneyi sonra yeniden adlandırırsanız bir uyarı işleyici adının eski olduğunu hatırlatır.
6. Betikleri denetleyin
Script Check'e (Betik denetimi) tıklayın. Valid sorun olmadığını gösterir; yoksa sorun sayısı bir liste açar: sözdizimi hataları, tanımsız adlar, iki kez tanımlanmış işlevler, artık olmayan bir işleyici. Betiğe gitmek için satıra tıklayın.

Projeyi kaydedin (Ctrl+S).
7. Sayfayı çalıştırın
Run'a tıklayın. Sayfa canlı değerlerle ve betikleriyle çalışır: burada tetikleyici betik saati durum metnine yazdı.

Hata ayıklama
Log.info(...)veconsole.log(...)tarayıcı konsoluna (tarayıcıda F12)[Script]önekiyle yazar. Sayfa betiklerinin hataları ayrıca Code görünümünün çalışma günlüğünde (Script Check'in yanındaki terminal düğmesi) görünür.- 5 saniyeden uzun çalışan betik bir uyarıya yol açar; durdurulmaz. Sonsuz döngülerden kaçının; bunun yerine Periodic kullanın.
- Bir betikteki hata diğerlerini durdurmaz.
- Betiklerin yaptığı ekran değişiklikleri (
UI.set,self) ve tetikleyiciler sayfa terk edilince silinir.setTimeoutya dasetIntervalile kendi başlattığınız zamanlayıcılar silinmez; onları bironUnloadbetiğinde temizleyin.