--- title: MutationObserver slug: Web/API/MutationObserver tags: - API - DOM - Dönüşüm Gözlemcisi translation_of: Web/API/MutationObserver ---
{{APIRef("DOM")}}
MutationObserver
, geliştiricilere DOM'da gerçekleşen değişimleri yakalanması ve bir tepki üretilmesi için bir yol sunar. Dönüşüm (Mutasyon) Olayları'nın yerini almak üzere tasarlanmış, DOM3 Events (Olaylar) belirlemesinde tanımlanmıştır.
MutationObserver()
DOM dönüşüm gözlemcilerini (mutation observer) yaratmak için kullanılır.
new MutationObserver( function geriyeCagri );
MutationObserver
'ın geçerli olan örneğidir.void observe( {{domxref("Node")}} hedef, MutationObserverInit ayarlar ); |
void disconnect(); |
Array takeRecords(); |
Anımsatma: Hedefin {{domxref("Node")}} diye belirtilen cinsi, NodeJS ile karıştırılmamalıdır..
observe()
Belirtilen DOM düğüm noktasının (node) yapısında meydana gelen değişimlerin bildirilebilmesi için MutationObserver
nesnesini kaydettirir.
void observe(
{{domxref("Node")}} hedef,
MutationObserverInit
ayarlar
);
hedef
ayarlar
MutationObserverInit
sınıfı nesnesidir.disconnect()
MutationObserver
nesnesinin DOM dönüşümlerinden haber almasını durdurur. observe()
işlerliği çağrılıncaya dek, nesnenin geriye çağrı (callback) işlerliği, DOM dönüşümlerinde çağrılmaz.
void disconnect();
takeRecords()
MutationObserver
nesnesinin kayıt kuyruğunda tuttuğu kayıtları elde etmeye ve kuyruğu boşaltmaya yarar.
Array takeRecords();
{{domxref("MutationRecord")}} nesnelerinden oluşmuş bir dizidir.
MutationObserverInit
MutationObserverInit
aşağıdaki niteliklerin tanımlandığı nesnedir.
childList
, attributes
veyâ characterData
nitelikleri true
olarak belirtilmelidir. Tersi durumda, "Geçersiz veyâ hatalı bir metin belirtildi. (An invalid or illegal string was specified)" hatasıyla karşılaşılabilir.Nitelik | Açıklama |
childList |
Eğer true olarak belirtilirse DOM öğesinde gerçekleştirilen öge veyâ düğüm noktası eklemeler-çıkarmalar gözlenir. Metin düğüm noktaları (text node) da bunun içerisindedir. |
attributes |
Eğer true olarak belirtilirse hedef ögenin niteliklerinde ortaya çıkan değişiklikler gözlenir. |
characterData |
Eğer true olarak belirtilirse hedef ögenin verisindeki değişimler gözlenir. |
subtree |
Eğer true olarak belirtilirse hedef ögenin ve altögelerinin dönüşümleri gözlenir. |
attributeOldValue |
Eğer true olarak belirtilirse niteliğin değişimden önceki değeri de kayıt altına alınır. |
characterDataOldValue |
Eğer true olarak belirtilirse ögenin verisinin değişimden önceki değeri de kaydedilir. |
attributeFilter |
Eğer tüm niteliklerin gözlenmesi gerekmiyorsa gözlenmesi istenen niteliklerin adlarının bir dizisi bu niteliğe atanır. |
Aşağıdaki örnek bu blog gönderisinden alınmıştır. Ancak açıklamalar ve değişken adları değiştirilmiştir.
// Hedef DOM ögesini seç. var nHedef = document.getElementById('bir-kimlik-degeri'); // Bir gözlemci yarat. var nGozlemci = new MutationObserver(function(nDonusumler) { // Öge dönüştüğünde, tüm dönüşümleri dolaş. nDonusumler.forEach(function(nDonusum) { // Sıradaki dönüşümü komut satırı ekranına yazdır. console.log(nDonusum.type); }); }); // Gözlemcinin ayarlarını belirle. var nAyarlar = { attributes: true, childList: true, characterData: true }; // Gözlemciyi belirlenen ayarlarla belirtilen ögeye ata. nGozlemci.observe(nHedef, nAyarlar); // Daha sonraları, aşağıdaki komutla gözlemleme durdurulabilir. nGozlemci.disconnect();
Belirleme | Durum | Yorum |
---|---|---|
{{SpecName('DOM WHATWG', '#mutationobserver', 'MutationObserver')}} | {{ Spec2('DOM WHATWG') }} |
{{CompatibilityTable}}
Durum | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Temel destek | 18 {{property_prefix("-webkit")}} 26 |
{{CompatVersionUnknown}} | {{CompatGeckoDesktop(14)}} | 11 | 15 | 6.0 {{property_prefix("-webkit")}} 7 |
Durum | Android | Chrome for Android | Edge | Firefox Mobile (Gecko) | IE Phone | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|---|
Temel destek | 4.4 | 18 {{property_prefix("-webkit")}} 26 |
{{CompatVersionUnknown}} | {{CompatGeckoMobile(14)}} | 11 (8.1) | 15 | 6 {{property_prefix("-webkit")}} 7 |