MutationObserver: disconnect() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

MutationObserverdisconnect() メソッドは、オブザーバーに変更の監視を停止させます。

オブザーバーは、observe() メソッドを再度呼び出すことで再利用できます。

構文

js
disconnect()

引数

なし。

返値

undefined

メモ: すでに検出されているが、まだオブザーバーに報告されていない変化の通知はすべて破棄されます。 検出されているが未報告の変化を保持し、処理するには、takeRecords() メソッドを使用してください。

使用上の注意

監視対象の要素が DOM から除去され、その後ブラウザーのガベージコレクション機構によって解放された場合、MutationObserver は除去された要素の監視を停止します。しかし、MutationObserver 自体は、他にも監視対象の要素が存在する場合には、その監視を続けることができます。

この例では、オブザーバーを作成してから切断し、再利用できるようにします。

js
const targetNode = document.querySelector("#someElement");
const observerOptions = {
  childList: true,
  attributes: true,
};

const observer = new MutationObserver(callback);
observer.observe(targetNode, observerOptions);

/* some time later… */

observer.disconnect();

仕様書

Specification
DOM Standard
# ref-for-dom-mutationobserver-disconnect①

ブラウザーの互換性

BCD tables only load in the browser