dialog必须是body直接子元素且调用showmodal()才激活模态行为;按钮需手动绑定close("value"),监听close事件读dialog.returnvalue;safari≤15.3需手动设backdrop背景色,点击遮罩关闭须手动监听并坐标兼容。

dialog 标签本身不提供“确认/取消”语义,也没有内置按钮逻辑——所有交互行为必须手动绑定,否则点不动、关不掉、返回值读不到。
为什么dialog写了却看不到弹窗
常见现象:HTML里写了<dialog><p>确定要删除吗?</p></dialog>,页面刷新后完全没反应。
-
dialog默认不渲染、不占布局,连getBoundingClientRect()都返回空对象 - 仅加
open属性(如<dialog open></dialog>)能让内容可见,但无遮罩、不锁焦点、按 Esc 不关闭——它只是个“浮层”,不是模态框 - 必须调用
showModal()才激活完整模态行为;show()几乎不用,它不加 backdrop,Tab 键可穿透到背景页 - 脚本执行早于 DOM 加载会报
Cannot read property 'showModal' of null:把<script></script>放在
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!











