【发布时间】:2013-05-07 20:16:58
【问题描述】:
目前开发的 Web 组件规范的一部分是可以创建自己的 HTML 元素,例如通过调用新的document.register。这里给出一个例子:https://github.com/mozilla/web-components/blob/master/demo/demo.html
如您所见,一个新的x-bar 元素是通过从 HTML span 元素的原型继承其原型而创建的。
现在我在 Firefox Nightly 中尝试了以下操作(顺便说一下,支持 document.register):
var x = Object.create(HTMLInputElement.prototype);
我一直认为这将是扩展/自定义普通input 元素的行为或外观的第一步。
但是,当我运行 x.value 之类的东西时,浏览器的 Javascript 引擎会抛出 TypeError: Value does not implement interface HTMLInputElement。
现在我有点卡住了。是当前实现还是规范的限制?
【问题讨论】:
-
以下两个答案对我理解自定义元素如何扩展现有元素类型以及如何填充此行为非常有帮助。由于我只能接受一个答案,我不得不做出选择。我接受了 csuwldcat 的回答,因为他给了我 Firefox 的预发布版本实际上已损坏的提示(它的奇怪行为与我最初的问题基本归结为)。
标签: javascript html dom web-component