Web组件v1 - 非法构造函数

时间:2016-09-21 20:19:51

标签: javascript html web-component custom-element

尝试使用webcomponents但遇到了一个我没有得到的错误。

标记很简单,应该可行。 2个文件,都是html文件。

错误标记在控制台中的<script>标记上。

感谢您的帮助。

PS。我正在运行Google Chrome测试版,以使customElements正常运行。

km-button.html

<script>

class KmButton extends HTMLButtonElement {

   constructor() {
     super();
   }

}

customElements.define('km-button', KmButton, {extends: 'button'});

</script>

的index.html

<!DOCTYPE html>
<html>
    <head>
        <!--  import webcomponents  -->
        <link rel="import" href="./components/km-button.html">
    </head>
    <body>
        <km-button>hej</km-button>
    </body>
</html>

错误

km-button.html:1 Uncaught TypeError: Illegal constructor(…)KmButton @ km-button.html:7

2 个答案:

答案 0 :(得分:4)

实际上它仍然不起作用(在你的更正之后)。

AFAIK在Chrome的自定义元素v1中尚未实现extends功能。

因此,is=语法只是(并且默默地)被忽略,您的按钮被视为标准<button>

答案 1 :(得分:0)

是的,当你扩展另一个DOM元素时,我似乎错误地认为<km-button></km-button>标记应该是<button is="km-button">some text</button>

如果有人遇到同样的错误,请提出问题。