92
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

使ってみよう!MutationObserver!

Last updated at Posted at 2018-10-15

#1)はじめに
DOMの監視をしたい、そんな時に使いやすいWebAPIがMutationObserverです。
今回はその利用方法について模索してみます。

#2)MutationObserverとは
その名の通り「Mutation(変化)」を「Observe(監視)」するAPI。
任意の要素(DOM)の変化を監視することが出来ます。

// 対象とするノードを取得
const target = document.getElementById('target');

// オブザーバインスタンスを作成
const observer = new MutationObserver((mutations) => {
	mutations.forEach((mutation) => {
		// 何かしたいこと
		console.log(mutation.target);
	});
});

// オブザーバの設定
const config = {
	characterData: true,
	subtree: true
};

// 対象ノードとオブザーバの設定を渡す
observer.observe(target, config);
// 何らかのタイミングで監視を解除したい時
observer.disconnect();

##オプションについて
childListattributescharacterDataいずれかにtrueが必須となる。

###childList
対象ノードの子ノード(テキストノードも含む)に対する追加・削除を監視する場合はtrue。

###attributes
対象ノードの属性に対する変更を監視する場合はtrue。

###characterData
対象ノードのデータに対する変更を監視する場合はtrue。

###subtree
対象ノードの子孫ノードまで監視する場合はtrue。

#3)対応ブラウザについて
image.png
Can I use:Mutation Observer
対応ブラウザを見るに、問題なく使うことが出来ますね。

#4)様々なDEMO
今ひとつ使い道が浮かばない・・

#5)参考リンク

92
66
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
92
66

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?