--- title: MutationObserver.takeRecords() slug: Web/API/MutationObserver/takeRecords translation_of: Web/API/MutationObserver/takeRecords ---
{{domxref("MutationObserver")}} の takeRecords()
メソッドは、検出されたがオブザーバのコールバック関数で処理されていない DOM の変更に一致するすべてのリストを返し、変更キューは空のままにします。 最も一般的な使用例は、オブザーバを切断する直前に保留中の変更記録をすべて取得し、オブザーバを停止する際に保留中の変更を処理できるようにすることです。
const mutationRecords = mutationObserver.takeRecords()
なし
{{domxref("MutationRecord")}} オブジェクトの配列で、そのそれぞれがドキュメントの DOM ツリーの監視された部分に適用された変更を記述します。
注: 発生したものの、オブザーバーのコールバックに伝えられなかった変更キューは、 takeRecords()
をコールした後は空のままになります。
この例では、オブザーバを切断する直前に takeRecords()
を呼び出して、未伝達の{{domxref("MutationRecord")}}を処理する方法を示します。
const targetNode = document.querySelector("#someElement"); const observerOptions = { childList: true, attributes: true } const observer = new MutationObserver(callback); observer.observe(targetNode, observerOptions); /* ...later, when it's time to stop observing... */ /* handle any still-pending mutations */ let mutations = observer.takeRecords(); observer.disconnect(); if (mutations) { callback(mutations); }
12-17 行目のコードは、処理されていない変更の記録を取得し、その記録を処理できるようにコールバックを呼び出します。これは、{{domxref("MutationObserver.disconnect", "disconnect()")}} を呼び出してDOMの観測を停止する直前に行われます。
Specification | Status | Comment |
---|---|---|
{{SpecName('DOM WHATWG', '#dom-mutationobserver-takerecords', 'MutationObserver.takeRecords()')}} | {{ Spec2('DOM WHATWG') }} |
{{Compat("api.MutationObserver.takeRecords")}}