【发布时间】:2020-04-11 09:16:04
【问题描述】:
我正在尝试在我的网站中使用一些自定义元素,并且在 Firefox 中它到目前为止运行良好。然而,在谷歌浏览器中,它只是默默地失败了——我的自定义元素的构造函数永远不会被调用,它也不会抛出错误。
假设这个最小的例子:
<!DOCTYPE html>
<html>
<head>
<script>
class MyElement extends HTMLDivElement {
constructor(){
super();
this.style.background = "#00ff00";
console.log("Created custom element!");
}
}
function addCustomElement(){
customElements.define("my-element",MyElement,{extends:"div"});
console.log("Added MyElement to custom element registry!");
}
</script>
</head>
<body onload="addCustomElement()">
<my-element style="display:block;width:100px;height:100px;background:#ff0000"></my-element>
</body>
</html>
我希望这会创建一个自定义元素类 MyElement,并将 DOM 中的所有 my-element-元素转换为该类的实例,一旦添加到自定义元素注册表,就会将原来的红色组件变为绿色。在 Firefox 中,这正是发生的情况,但在 google chrome 中,它保持红色。控制台表明该元素已添加到注册表中,但从未调用过它的构造函数。
我错过了什么吗?这是chrome的问题,还是我做错了什么?我怎样才能让它在那里工作?
【问题讨论】:
-
@Supersharp 我对此不太确定,它处理的是相同的基本主题,但问题却完全不同。编辑:没关系,我猜当你提出这个问题时,评论是自动发送的。哎呀。
标签: javascript html google-chrome custom-element