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?
Réponses
Trop de publicités?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();
Document.registerElement est désormais obsolète. Essayez ceci: https://developer.mozilla.org/en-US/docs/Web/API/CustomElementRegistry/define