我在Google上搜索了一下,在StackOverflow上搜索了一下,可能是现在已经过时的HTML5规范,但还没有找到答案。我觉得好像我错过了一些显而易见的东西。
我想知道在创建HTML5自定义元素时,是否有方法指定新元素的用户应该(或者必须)在每个文档中只使用一次?
例如,对于HTML元素,“head”、“body”、“main”等在文档中只应使用一次。我还没有找到一种方法来处理自定义元素。这是可能的,无论是香草HTML5,聚合物,还是其他一些手段?
感谢所有能帮忙的人。

最佳答案

使用内置回调跟踪自定义元素的使用:

var MyElementPrototype = Object.create(HTMLElement.prototype);
MyElementPrototype.len = 0;
MyElementPrototype.attachedCallback = function() {
  MyElementPrototype.len++;
  if (MyElementPrototype.len > 1) {
    alert('The Document is not Valid'); // Do Something
  }
};
MyElementPrototype.detachedCallback = function() {
  MyElementPrototype.len--;
};
document.registerElement(
  'my-element',
  {
    prototype: MyElementPrototype
  }
);

09-20 17:24