【发布时间】:2019-10-30 07:43:55
【问题描述】:
我正在尝试创建一个扩展 div 元素的 Web 组件,我发现 this other Stack Overflow question 关于如何扩展本机元素(本例中为按钮)。但是,我不能让它工作。而且,根据this answer 中的更新,它应该可以工作。
如果您查看此简化代码 sn-p 中的结果,它只是呈现为带有文本的简单内联元素。 如果您打开 Chrome 控制台并查看属性选项卡,很明显它不会从 HTMLButtonElement 继承(它应该继承)。怎么了?
class FancyButton extends HTMLButtonElement {
constructor() {
super(); // always call super() first in the ctor.
this.addEventListener('click', e => this.innerHTML = "I was clicked");
}
}
customElements.define('fancy-button', FancyButton, { extends: 'button' });
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>title</title>
<link rel="stylesheet" href="style.css">
<script src="script.js"></script>
</head>
<body>
<fancy-button>Click me</fancy-button>
</body>
</html>
【问题讨论】:
-
试试
<button is='fancy-button'>Test</button> -
谢谢它的工作。