小编pea*_*iac的帖子

自定义元素在谷歌浏览器中不起作用

我正在尝试在我的网站中使用一些自定义元素,并且在 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>
Run Code Online (Sandbox Code Playgroud)

我希望这会创建一个自定义元素类,并在添加到自定义元素注册表后将 DOM 中的MyElement所有元素转换为该类的实例,从而将最初的红色组件变为绿色。my-element在 Firefox 中,这正是发生的情况,但在 google chrome 中,它保持红色。控制台指示该元素已添加到注册表中,但从未调用其构造函数。

我错过了什么吗?这是chrome的问题,还是我做错了什么?我怎样才能让它在那里工作?

html javascript google-chrome custom-element

2
推荐指数
2
解决办法
4085
查看次数

标签 统计

custom-element ×1

google-chrome ×1

html ×1

javascript ×1