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ưDOMElementNameChangedvàDOMAttributeNameChanged).
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.attrChangeRead 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ặcREMOVAL(3). Nó không có ý nghĩa cho các sự kiện khác và được đặt thành0. MutationEvent.attrNameRead 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.newValueRead only Deprecated Non-standard-
Trong các sự kiện
DOMAttrModified, chứa giá trị mới của nútAttrđược sửa đổi. Trong các sự kiệnDOMCharacterDataModified, chứa giá trị mới của nútCharacterDatađược sửa đổi. Trong tất cả các trường hợp khác, trả về chuỗi rỗng (""). MutationEvent.prevValueRead only Deprecated Non-standard-
Trong các sự kiện
DOMAttrModified, chứa giá trị trước đó của nútAttrđược sửa đổi. Trong các sự kiệnDOMCharacterDataModified, chứa giá trị trước đó của nútCharacterDatađược sửa đổi. Trong tất cả các trường hợp khác, trả về chuỗi rỗng (""). -
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
MutationEventmớ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)DOMCharacterDataModifiedDOMElementNameChanged(Không được hỗ trợ bởi Firefox)DOMNodeInsertedDOMNodeInsertedIntoDocumentDOMNodeRemovedDOMNodeRemovedFromDocumentDOMSubtreeModified
Ví dụ
Bạn có thể đăng ký trình lắng nghe cho mutation events bằng EventTarget.addEventListener() như sau:
element.addEventListener("DOMNodeInserted", (event) => {
// …
});