„Wenn ein Arbeiter seine Arbeit gut machen will, muss er zuerst seine Werkzeuge schärfen.“ – Konfuzius, „Die Gespräche des Konfuzius. Lu Linggong“
Titelseite > Programmierung > Wie erkennt man DOM-Attributänderungen und reagiert darauf: MutationObserver vs. Legacy-Methoden?

Wie erkennt man DOM-Attributänderungen und reagiert darauf: MutationObserver vs. Legacy-Methoden?

Veröffentlicht am 02.11.2024
Durchsuche:191

How to Detect and Respond to DOM Attribute Changes: MutationObserver vs. Legacy Methods?

Ereignisse bei DOM-Attributänderungen auslösen

In vielen Szenarien müssen Änderungen in DOM-Attributen erkannt werden, beispielsweise wenn sich die Quelle eines Bildes oder der HTML-Code eines Divs ändert Inhaltsaktualisierungen. Die Browserunterstützung für diese Funktionalität hat sich im Laufe der Zeit weiterentwickelt.

DOM-Mutationsereignisse (Legacy)

In der Vergangenheit boten DOM-Mutationsereignisse eine Möglichkeit, auf Attributänderungen zu warten. Zu diesen Ereignissen gehörten:

  • DOMAttrModified
  • DOMNodeInserted
  • DOMNodeRemoved

Die Browserunterstützung für DOM-Mutationsereignisse war jedoch inkonsistent, was dazu führte ihre Abschaffung im Jahr 2012.

MutationObserver API

Als Ersatz für DOM Mutation Events wurde die MutationObserver API eingeführt. MutationObserver bietet eine robustere und weithin unterstützte Methode zum Erkennen von Änderungen in DOM-Attributen und anderen Aspekten des DOM.

Mit MutationObserver können Sie eine Beobachterinstanz erstellen und die Arten von Änderungen angeben, die Sie überwachen möchten. Der Beobachter benachrichtigt Sie, wenn übereinstimmende Änderungen im DOM auftreten.

Hier ist ein Beispiel dafür, wie Sie MutationObserver verwenden können, um Änderungen am Quellattribut eines Bildes zu erkennen:

// Create an observer instance
const observer = new MutationObserver((mutations) => {
  for (const mutation of mutations) {
    // Check if the mutation is for the "src" attribute
    if (mutation.attributeName === "src") {
      // Do something in response to the source change
    }
  }
});

// Start observing the specified target node
observer.observe(image, { attributes: true, attributeFilter: ["src"] });

In diesem Beispiel ist der Beobachter so konfiguriert, dass er das src-Attribut des Bildknotens überwacht und den angegebenen Rückruf aufruft wann immer sich dieses Attribut ändert.

jQuery Mutation Events Plugin

Wenn Sie jQuery verwenden, können Sie das Mutation Events Plugin als Alternative zu MutationObserver nutzen. Dieses Plugin bietet eine vereinfachte Schnittstelle für die Handhabung von DOM-Attributänderungen und kann nützlich sein, wenn Sie nur an bestimmten Attributänderungen interessiert sind.

$(image).on("DOMAttrModified", (event) => {
  if (event.attrName === "src") {
    // Do something in response to the source change
  }
});

Durch die Verwendung von MutationObserver oder dem jQuery Mutation Events-Plugin können Sie Änderungen in DOM-Attributen effektiv erkennen und benutzerdefinierte Aktionen als Reaktion auf diese Änderungen ausführen.

Neuestes Tutorial Mehr>

Haftungsausschluss: Alle bereitgestellten Ressourcen stammen teilweise aus dem Internet. Wenn eine Verletzung Ihres Urheberrechts oder anderer Rechte und Interessen vorliegt, erläutern Sie bitte die detaillierten Gründe und legen Sie einen Nachweis des Urheberrechts oder Ihrer Rechte und Interessen vor und senden Sie ihn dann an die E-Mail-Adresse: [email protected] Wir werden die Angelegenheit so schnell wie möglich für Sie erledigen.

Copyright© 2022 湘ICP备2022001581号-3