2 votes

Y a-t-il un moyen de définir de nouveaux éléments HTML sans document.registerElement()?

Dans certains navigateurs, vous pouvez définir de nouveaux éléments HTML avec des fonctionnalités personnalisées, etc., en utilisant l'API vraiment incompatible Document.registerElement(). Existe-t-il un moyen d'éviter d'utiliser cette API et de créer de nouveaux éléments HTML compatibles avec de nombreux navigateurs?

2voto

Scott Marcus Points 45

Uh, oui. En utilisant le standard DOM:

document.createElement("type d'élément")

Vous pouvez (mais je ne sais pas pourquoi vous le feriez) utiliser ceci pour créer des éléments non standard. Ensuite, ce ne sont que des objets JavaScript, donc vous pouvez les personnaliser comme vous le feriez avec n'importe quel autre objet.

Dans un document HTML, la méthode Document.createElement() crée l'élément HTML spécifié par le nom de balise, ou un HTMLUnknownElement si le nom de balise n'est pas reconnu.

// Cause la création d'un HTMLUnknownElement
var e = document.createElement("custom");

// Prend en charge l'interface élémentaire de base
e.innerHTML = "Je suis dans un nouvel élément <custom>.";

// Mais c'est un objet JS comme un autre et peut donc être personnalisé
// comme tel :
e.custom = function(){
  alert("opération personnalisée");
};

// Est un nœud d'élément (bien qu'invalid), donc peut être inséré dans le DOM
document.body.appendChild(e);

// Mais a des fonctions personnalisées :
e.custom();

1voto

Zachary Rich Points 26

Document.registerElement est désormais obsolète. Essayez ceci: https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X