--- title: CustomElementRegistry slug: Web/API/CustomElementRegistry translation_of: Web/API/CustomElementRegistry ---
{{DefaultAPISidebar("Web Components")}}
A interface CustomElementRegistry
provê métodos para registro de elementos customizados e busca de elementos registrados. Para instancia-lo, use a propriedade {{domxref("window.customElements")}}.
undefined
caso não tenha sido definido.O código a seguir foi pego do nosso word-count-web-component exemplo (veja em ação). Perceba que usamos o método {{domxref("CustomElementRegistry.define()")}} para definir um elemento customizado.
// Cria uma classe para o elemento class WordCount extends HTMLParagraphElement { constructor() { // Sempre execute primeiro o método super super(); // Conta as palavras no elemento pai var wcParent = this.parentNode; function countWords(node){ var text = node.innerText || node.textContent return text.split(/\s+/g).length; } var count = 'Words: ' + countWords(wcParent); // Cria um shadow root var shadow = this.attachShadow({mode: 'open'}); // Cria um nó de texto e adiciona o contador de palavra nele var text = document.createElement('span'); text.textContent = count; // Acrescenta ao shadow root shadow.appendChild(text); // Atualiza o contador quando houver mudança setInterval(function() { var count = 'Words: ' + countWords(wcParent); text.textContent = count; }, 200) } } // Define um novo elemento customElements.define('word-count', WordCount, { extends: 'p' });
Note: The CustomElementsRegistry is available through the {{domxref("Window.customElements")}} property.
Specification | Status | Comment |
---|---|---|
{{SpecName("HTML WHATWG", "custom-elements.html#customelementregistry", "CustomElementRegistry")}} | {{Spec2("HTML WHATWG")}} | Definição inicial |
{{Compat("api.CustomElementRegistry")}}