首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展HTMLDialogElement

扩展HTMLDialogElement
EN

Stack Overflow用户
提问于 2022-07-31 18:52:38
回答 1查看 121关注 0票数 0

我应该能够通过生成一个扩展HTMLDialogElement的类来创建一个自定义对话框。但是,当我这样做时,.showModal()方法会抛出一个“不存在”错误。很明显我漏掉了什么东西,是什么?

HTML:

代码语言:javascript
复制
<modal-dialog></modal-dialog>

Javascript:

代码语言:javascript
复制
class ModalDialog extends HTMLDialogElement { constructor() { super(); } }

customElements.define('modal-dialog', ModalDialog, {extends: 'dialog'});

document.querySelector('modal-dialog').showModal();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-31 19:06:09

您正在指定一个自定义的内置元素,您在DOM中使用它们的方式与自治的自定义元素不同。来自关于使用自定义元素的MDN文档

自定义的内置元素继承了基本的HTML元素.要创建其中一个元素,您必须指定它们扩展的元素(如上面示例中所暗示的那样),使用它们的方法是写出基本元素,但在is属性(或属性)中指定自定义元素的名称。例如,<p is="word-count">document.createElement("p", { is: "word-count" })

因此,在您的示例中,您需要稍微调整自定义元素的用法,如下所示:

代码语言:javascript
复制
class ModalDialog extends HTMLDialogElement { constructor() { super(); } }

customElements.define('modal-dialog', ModalDialog, {extends: 'dialog'});

document.querySelector('dialog').showModal();
代码语言:javascript
复制
<dialog is="modal-dialog"></dialog>

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73186107

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档