MutationObserver

2017-07-19T21:00:00+09:00

https://developer.mozilla.org/ja/docs/Web/API/MutationObserver

例えば特定のエレメントの状態が変わった時とかになんらかのアクションを行いたい場合とかそういう時にMutationObserverを使って状態監視を行って変更を利用したいみたいな事案で利用できるっぽい(あってるかは定かではない)

例えば現在見ているページをTweetDeckを使ってツイートできるようにツイートのテキスト部分にタイトルとURLをぶち込むんだけど、TweetDeckの初期UIのロードが完了した時点でそういう処理をしたい時とかにMutationObserverを使うことで実現できる模様

var mo = new MutationObserver((mutation) => {
  document.querySelector(".js-compose-text").value = `${tabTitle} ${tabUrl}`;
  document.querySelector(".js-send-button").classList.toggle("is-disabled");
  document.querySelector(".js-tweet-button").click();
  mo.disconnect();
});

mo.observe(
  document.querySelector(".js-app.application.is-hidden"),
  { attributes: true }
);

余談

Kotlin Unit Testing (1) LiftOff