Suche…


Syntax

  • .prototype.createdCallback ()
  • .prototype.attachedCallback ()
  • .prototype.detachedCallback ()
  • .prototype.attributeChangedCallback (name, oldValue, newValue)
  • document.registerElement (Name, [Optionen])

Parameter

Parameter Einzelheiten
Name Der Name des neuen benutzerdefinierten Elements.
options.extends Der Name des nativen Elements, das erweitert wird, falls vorhanden.
Optionen.Prototyp Der für das benutzerdefinierte Element zu verwendende benutzerdefinierte Prototyp (falls vorhanden).

Bemerkungen

Beachten Sie, dass die Spezifikation für benutzerdefinierte Elemente noch nicht standardisiert wurde und Änderungen unterliegen kann. In der Dokumentation wird die Version beschrieben, die zu diesem Zeitpunkt in Chrome stabil geliefert wurde.

Benutzerdefinierte Elemente ist eine HTML5-Funktion, die es Entwicklern ermöglicht, JavaScript zu verwenden, um benutzerdefinierte HTML-Tags zu definieren, die auf ihren Seiten verwendet werden können, mit zugeordneten Stilen und Verhalten. Sie werden oft mit .

Neue Elemente registrieren

Definiert ein benutzerdefiniertes <initially-hidden> Element, das den Inhalt bis zu einer bestimmten Anzahl von Sekunden verbirgt.

const InitiallyHiddenElement = document.registerElement('initially-hidden', class extends HTMLElement {
  createdCallback() {
    this.revealTimeoutId = null;
  }

  attachedCallback() {
    const seconds = Number(this.getAttribute('for'));
    this.style.display = 'none';
    this.revealTimeoutId = setTimeout(() => {
      this.style.display = 'block';
    }, seconds * 1000);
  }

  detachedCallback() {
    if (this.revealTimeoutId) {
      clearTimeout(this.revealTimeoutId);
      this.revealTimeoutId = null;
    }
  }
});
<initially-hidden for="2">Hello</initially-hidden>
<initially-hidden for="5">World</initially-hidden>

Native Elemente erweitern

Es ist möglich, native Elemente zu erweitern, aber ihre Nachkommen haben keine eigenen Tagnamen. Stattdessen das is wird Attribut verwendet , um festzulegen , welche Unterklasse ein Element soll verwenden. Hier ist zum Beispiel eine Erweiterung des <img> -Elements, die eine Nachricht beim Laden an der Konsole protokolliert.

const prototype = Object.create(HTMLImageElement.prototype);
prototype.createdCallback = function() {
  this.addEventListener('load', event => {
      console.log("Image loaded successfully.");
  });
};

document.registerElement('ex-image', { extends: 'img', prototype: prototype });
<img is="ex-image" src="http://cdn.sstatic.net/Sites/stackoverflow/img/apple-touch-icon.png" />


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow