有没有办法指定HTML5自定义元素应该每个文档只使用一次?

时间:2014-06-24 20:27:17

标签: html5 polymer

我在谷歌上搜索,在StackOverflow,可能是现在过时的HTML5规范,但还没有找到答案。我觉得好像缺少一些明显的东西。

我想知道是否有一种方法可以指定何时创建HTML5自定义元素,该新元素的用户应(或必须对元素规范“有效”)每个文档使用一次?

例如,对于HTML的元素,“head”,“body”,“main”等只应在文档中使用一次。我无法找到使用自定义元素执行此操作的方法。这可能是使用香草HTML5,聚合物还是其他方法吗?

感谢任何可以提供帮助的人。

2 个答案:

答案 0 :(得分:1)

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

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
  }
);

答案 1 :(得分:0)

如果您只想验证文档,可以使用JavaScript轻松完成。

JsFiddle: http://jsfiddle.net/4AXaS/

<强> HTML:

<div>Lorem</div>
<div>Ipsum</div>

<强> JavaScript的:

$(function () {
    if ($('div').length > 1) {
        alert("Can't use this element more than once in the document");
    }
});