Detect if Element is a Web Component
Publikováno: 5.6.2019
I’ve advocated for web components since before they became a spec, mostly inspired by the Dojo Toolkit’s dijit framework. Empowering first class JavaScript widgets, as opposed to a mess of DIVs and templates, always made the most sense. Now that web components exist, and awesome frameworks like Ionic are based on them, I wanted to […]
The post Detect if Element is a Web Component appeared first on David Walsh Blog.
I’ve advocated for web components since before they became a spec, mostly inspired by the Dojo Toolkit’s dijit framework. Empowering first class JavaScript widgets, as opposed to a mess of DIVs and templates, always made the most sense. Now that web components exist, and awesome frameworks like Ionic are based on them, I wanted to discover how to detect a web component, as opposed to a regular HTML element, with JavaScript. As it turns out, it’s much easier than you’d think.
Assuming you have a reference to an element, it’s as easy as detecting a dash in the element’s tag:
function isWebComponent(element) { return element.tagName.includes("-"); }
The web component spec requires a dash in the HTMLElement
‘s tagName
, so detecting a web component is essentially nailed down to a string comparison.
If you haven’t played with web components, I really hope you find the time. Having lived through decades of “widgets” and over-nesting of arbitrary DIVs and unreadable code, I’ve learned to appreciate these gems!
The post Detect if Element is a Web Component appeared first on David Walsh Blog.