UI-js, DOM ögeleri oluşturmak için bir işlev sunan bir JavaScript kitaplığıdır. Betiklerde kullanıcı arayüzleri oluşturmak için bir araç olarak kullanılabilir.
Usage
İçe aktarma
Betiğini kendi betiğiniz aracılığıyla içe aktarmak için şunu kullanın:
importArticle({
type: 'script',
article: 'u:dev:MediaWiki:UI-js/code.js'
});
Betiğinin işlevi hemen kullanılamayacak, ancak mw.hook aracılığıyla bir kanca çağıracak. Oluşturucu işlevinin var olduğundan emin olmak için şunları kullanabilirsiniz:
mw.hook('dev.ui').add(function(ui) {
// Kodunuzu burada kullanın
// `ui` parametresi oluşturucu işlevidir
// Bu noktada `window.dev.ui` içinde de mevcuttur
});
İşlev
UI-js, DOM ögeleri oluşturmak için kullanılan tek bir işlevi gösterir. Tek bir parametreyi, aşağıdaki olası özelliklere sahip bir nesneyi kabul eder:
attr- Ögenin tüm özelliklerini ve değerlerini içeren nesne.
checked- Bir onay kutusunun işaretlenip işaretlenmediğini belirlemek için kullanılır.
Öge bir onay kutusu değilse, bu parametrenin ayarlanması hiçbir şey yapmaz. children- Geçerli ögenin alt ögeleri için yapılandırmaları temsil eden nesne dizisi.
Kütüphane işlevine iletilebilen herhangi bir geçerli değer, bu dizinin geçerli bir ögesidir. classes- Ögenin birden fazla sınıfı varsa bu, sınıfı
attraracılığıyla ayarlamaktan daha kullanışlı bir özelliktir.
Ayrıca,classbir ayrılmış sözcüktür ve ES3 uyumluluğu için özellik adlarında kullanılmamalıdır. condition- Ögenin oluşturulması gerekiyorsa.
Bazı ögelerin yalnızca belirli koşullar altında görüntülenmesi gerektiğinde mantığı basitleştirmek için kullanılır. data- Ögenin tüm veri özniteliklerini içeren nesne.
Teknik olarakattrseçeneğiyle aynıdır ancak her özniteliğin önünedata-eklenir. events- Tüm olay dinleyicileri olan nesne.
Bu nesnenin anahtarları olay adlarıdır, değerler ise bu olayları işlemek için kullanılan işlevlerdir. html- Ögenin iç HTML'si.
Yalnızca HTML'nin betik tarafından tanınan nesnelere kolayca dönüştürülemediği durumlarda kullanılmalıdır (örneğin, HTML başka bir kaynaktan indirildiyse), aksi takdirde gerekli DOM düğümlerini oluşturmak için betiğinin işlevselliğini kullanın. parent- Ögenin zaten var olan başka bir DOM öğesine eklenmesi gerekiyorsa, seçiciyi temsil eden bir dize olarak buraya iletilebilir.
selected- Ögenin seçili dizini.
<select>açılır listeleri için kullanılır. style- Ögenin CSS özelliklerine sahip nesne.
Bu seçenek, geçerli sürümde her zaman çalışmıyor. Lütfen bu parametrenin çalışmadığı durumlar için hata raporları gönderin. text- Ögenin metin içeriği.
type- Ögenin türü. Örneğin, bir div ögesi yapmak istiyorsanız,
divolarak ayarlanmalıdır.
Ayarlanmazsa, belge parçası oluşturacaktır.
İşleve basit bir dize iletilirse, dizenin içeriğini içeren basit bir metin düğümü oluşturur.
Examples
Aşağıdaki örnekler, DOM ögeleri oluşturmak için ui işlevinin kullanılmasıdır. Bu işlevin nasıl elde edileceğine ilişkin talimatlar "İçe aktarma" bölümünde görülebilir ve parametreleri hakkında daha fazla bilgi "İşlev" bölümündedir.
| Description | Kod | Oluşturur |
|---|---|---|
| Metin düğümü | ui("Bu bir metin düğümü");
|
Bu bir metin düğümü
|
| Div ögesi | ui({type: 'div'});
|
<div></div>
|
| Metin ile | ui({
text: 'Bu metin içeren bir div',
type: 'div'
});
|
<div>Bu metin içeren bir div</div>
|
| Bir sınıf ve kimlik ile | ui({
attr: {
class: 'thisisatest',
id: 'testdiv'
},
type: 'div'
});
|
<div class="thisisatest" id="testdiv"></div>
|
| Kırmızı metin ile | ui({
style: {
color: 'red'
},
text: 'Bu kırmızı metin',
type: 'div'
});
|
<div style="color: red;">Bu kırmızı metin</div>
|
data öznitelikleri ile
|
ui({
data: {
test: 'Test bir',
test2: 'Test iki'
},
type: 'div'
});
|
<div data-test="Test bir" data-test2="Test iki"></div>
|
| Olay dinleyicisi ile | ui({
events: {
click: function() {
console.log('Test');
}
},
text: 'Beni tıklayın!',
type: 'div'
});
|
<div>Beni tıklayın!</div>
Div, tıklandığında "Test" metini konsola kaydeder. |
| Alt açıklıkları ile | ui({
children: [
{
text: 'İlk açıklık',
type: 'span'
},
{
text: 'İkinci açıklık',
type: 'span'
}
],
type: 'div'
});
|
<div>
<span>İlk açıklık</span>
<span>İkinci açıklık</span>
</div>
|
| Gövdeye eklenen | ui({
parent: 'body',
text: 'Metin',
type: 'div'
});
|
<div>Metin</div>
Div, oluşturulduktan sonra gövdeye eklenir. |
| Yalnızca hizmetlilere gösterilir | var ug = mw.config.get('wgUserGroups');
ui({
condition: ug.indexOf('sysop') !== -1,
text: 'Hizmetli, bunu görebilirsin!',
type: 'div'
});
|
<div>Hizmetli, bunu görebilirsin!</div>
Yalnızca Hizmetlilere gösterilir. |
| Birden çok sınıf ile | ui({
classes: [
'wds-button',
'wds-is-secondary'
],
type: 'div'
});
|
<div class="wds-button wds-is-secondary"></div>
|