Как отличить нативный HTMLE-элемент от созданного / пользовательского?

Предположим, у меня есть следующий HTML-код:

<header>
  <nav>
    <ul>
      <li>My first menu</li>
      <li>My second menu</li>
    </ul>
  </nav>
<header>
<main>
  <section>
    <h2>My title</h2>
    <my-beautiful-text>My text</my-beautiful-text>
  </section>
</main>
<footer>
  Copyright © 2015
</footer>

Пока я зацикливаю все элементы, я хотел бы знать, если элемент (например, nav) является нативным элементом HTMLElement или созданным (например, my-beautiful-text).

Я уже искал его в Google и здесь, но не повезло.

Мои попытки использовали constructor а также instanceofи это работает для некоторых элементов, таких как span, div, input и т. д., но он не работает для некоторых компонентов, которые не перекрывают HTMLElement прототип. Есть догадки?

1 ответ

Решение

Имена тегов с тире являются пользовательскими.

Смотрите спецификации http://w3c.github.io/webcomponents/spec/custom/

Другие вопросы по тегам