MutationEvent

已棄用:此特性不再推薦。雖然某些瀏覽器可能仍然支援它,但它可能已經從相關的網路標準中刪除,可能正在刪除過程中,或者可能僅為相容性目的而保留。請避免使用它,如果可能,請更新現有程式碼;請參閱本頁底部的相容性表格以指導您的決策。請注意,此特性可能隨時停止工作。

非標準:此特性未標準化。我們不建議在生產環境中使用非標準特性,因為它們瀏覽器支援有限,並且可能會更改或被移除。但是,在沒有標準選項的特定情況下,它們可以是合適的替代方案。

MutationEvent 介面提供了特定於修改文件物件模型(DOM)層級和節點的事件屬性。

注意: 使用變異事件是有問題的

  • 它們的 設計存在缺陷
  • 向文件新增 DOM 變異監聽器會 嚴重降低該文件後續 DOM 修改的效能(使其變慢 1.5 - 7 倍!)。此外,移除監聽器也無法逆轉這種損害。
  • 它們的跨瀏覽器相容性很差:Safari 不支援 DOMAttrModified(參見 WebKit Bug 8191),而 Firefox 不支援變異名稱事件(如 DOMElementNameChangedDOMAttributeNameChanged)。

它們已被棄用,取而代之的是 MutationObserver請考慮改用它們。

例項屬性

此介面還繼承了其父級 UIEvent 的屬性,以及間接繼承自 Event 的屬性。

MutationEvent.attrChange 只讀 已棄用 非標準

指示觸發 DOMAttrModified 事件的更改型別。它可以是 MODIFICATION (1)、ADDITION (2) 或 REMOVAL (3)。對於其他事件,它沒有意義,因此設定為 0

MutationEvent.attrName 只讀 已棄用 非標準

指示受 DOMAttrModified 事件影響的節點名稱。對於其他事件,它沒有意義,因此設定為空字串 ("")。

MutationEvent.newValue 只讀 已棄用 非標準

DOMAttrModified 事件中,包含已修改的 Attr 節點的新值。在 DOMCharacterDataModified 事件中,包含已修改的 CharacterData 節點的新值。在所有其他情況下,返回空字串 ("")。

MutationEvent.prevValue 只讀 已棄用 非標準

DOMAttrModified 事件中,包含已修改的 Attr 節點的前一個值。在 DOMCharacterDataModified 事件中,包含已修改的 CharacterData 節點的前一個新值。在所有其他情況下,返回空字串 ("")。

MutationEvent.relatedNode 只讀 已棄用 非標準

指示與事件相關的節點,例如 DOMSubtreeModified 事件的子樹中已更改的節點。

例項方法

MutationEvent.initMutationEvent() 已棄用 非標準

建構函式,用於返回一個使用給定引數配置的新 MutationEvent

變異事件列表

以下是所有變異事件的列表

  • DOMAttrModified (Safari 不支援)
  • DOMAttributeNameChanged (Firefox 不支援)
  • DOMCharacterDataModified
  • DOMElementNameChanged (Firefox 不支援)
  • DOMNodeInserted
  • DOMNodeInsertedIntoDocument
  • DOMNodeRemoved
  • DOMNodeRemovedFromDocument
  • DOMSubtreeModified

示例

您可以使用 EventTarget.addEventListener() 註冊變異事件的監聽器,如下所示:

js
element.addEventListener("DOMNodeInserted", (event) => {
  // …
});

規範

此特性似乎未在任何規範中定義。

瀏覽器相容性

另見