MutationEvent

Deprecated: This feature is no longer recommended. Though some browsers might still support it, it may have already been removed from the relevant web standards, may be in the process of being dropped, or may only be kept for compatibility purposes. Avoid using it, and update existing code if possible; see the compatibility table at the bottom of this page to guide your decision. Be aware that this feature may cease to work at any time.

Non-standard: This feature is not standardized. We do not recommend using non-standard features in production, as they have limited browser support, and may change or be removed. However, they can be a suitable alternative in specific cases where no standard option exists.

Giao diện MutationEvent cung cấp các thuộc tính sự kiện đặc thù cho các sửa đổi đối với hệ thống phân cấp Document Object Model (DOM) và các nút.

Note: Việc sử dụng mutation events có vấn đề:

  • Thiết kế của chúng có sai sót.
  • Việc thêm các trình lắng nghe DOM mutation vào một tài liệu làm giảm đáng kể hiệu suất của các sửa đổi DOM tiếp theo đối với tài liệu đó (làm chậm chúng 1,5 đến 7 lần!). Hơn nữa, việc xóa các trình lắng nghe không đảo ngược thiệt hại.
  • Chúng có khả năng tương thích trình duyệt kém: Safari không hỗ trợ DOMAttrModified (xem WebKit bug 8191) và Firefox không hỗ trợ mutation name events (như DOMElementNameChangedDOMAttributeNameChanged).

Chúng đã bị lỗi thời để ủng hộ mutation observers. Hãy cân nhắc sử dụng những thứ này thay thế.

Thuộc tính phiên bản

Giao diện này cũng kế thừa các thuộc tính từ lớp cha UIEvent, và gián tiếp từ Event.

MutationEvent.attrChange Read only Deprecated Non-standard

Cho biết loại thay đổi nào đã kích hoạt sự kiện DOMAttrModified. Nó có thể là MODIFICATION (1), ADDITION (2) hoặc REMOVAL (3). Nó không có ý nghĩa cho các sự kiện khác và được đặt thành 0.

MutationEvent.attrName Read only Deprecated Non-standard

Cho biết tên của nút bị ảnh hưởng bởi sự kiện DOMAttrModified. Nó không có ý nghĩa cho các sự kiện khác và được đặt thành chuỗi rỗng ("").

MutationEvent.newValue Read only Deprecated Non-standard

Trong các sự kiện DOMAttrModified, chứa giá trị mới của nút Attr được sửa đổi. Trong các sự kiện DOMCharacterDataModified, chứa giá trị mới của nút CharacterData được sửa đổi. Trong tất cả các trường hợp khác, trả về chuỗi rỗng ("").

MutationEvent.prevValue Read only Deprecated Non-standard

Trong các sự kiện DOMAttrModified, chứa giá trị trước đó của nút Attr được sửa đổi. Trong các sự kiện DOMCharacterDataModified, chứa giá trị trước đó của nút CharacterData được sửa đổi. Trong tất cả các trường hợp khác, trả về chuỗi rỗng ("").

MutationEvent.relatedNode Read only Deprecated Non-standard

Cho biết nút liên quan đến sự kiện, như nút được thay đổi bên trong cây con cho DOMSubtreeModified.

Phương thức phiên bản

MutationEvent.initMutationEvent() Deprecated Non-standard

Phương thức khởi tạo trả về một MutationEvent mới được cấu hình với các tham số đã cho.

Danh sách mutation events

Sau đây là danh sách tất cả mutation events:

  • DOMAttrModified (Không được hỗ trợ bởi Safari)
  • DOMAttributeNameChanged (Không được hỗ trợ bởi Firefox)
  • DOMCharacterDataModified
  • DOMElementNameChanged (Không được hỗ trợ bởi Firefox)
  • DOMNodeInserted
  • DOMNodeInsertedIntoDocument
  • DOMNodeRemoved
  • DOMNodeRemovedFromDocument
  • DOMSubtreeModified

Ví dụ

Bạn có thể đăng ký trình lắng nghe cho mutation events bằng EventTarget.addEventListener() như sau:

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

Thông số kỹ thuật

This feature does not appear to be defined in any specification.

Tương thích trình duyệt

Xem thêm