【发布时间】:2021-11-24 00:10:09
【问题描述】:
我已经在一个网页中实现了几个 html5 对话框。我想让用户单击对话框外部以关闭它,而不是使用关闭按钮或需要 {escape} 按键来弄乱对话框。关于这个问题的许多查询都是针对异国情调的 js 库,但我想使用纯 JS 而不是 jquery。
JS
// HALFHIDE
function openHALFHIDEdialog() {
var dialogHALFHIDEsource_O = document.getElementById("S-HALFHIDE");
dialogHALFHIDEsource_O.showModal();
}
function closeHALFHIDEdialog() {
var dialogHALFHIDEsource_C = document.getElementById("S-HALFHIDE");
dialogHALFHIDEsource_C.close(); }
HTML
<!-- S. HALFHIDE -->
<div class = "generic_dialog_container">
<dialog class = "generic dialog" id = "S-HALFHIDE">
<p>Blah blah blah</p>
</dialog></div>
<!-- END S HALFHIDE -->
我该怎么做?
【问题讨论】:
-
这能回答你的问题吗? Can't close modal when I click outside of it
-
鉴于我的 div 类和对话框类,一个简单的单行解决方案,用于检测这些元素之外的点击并调用关闭函数是最简洁最简洁的解决方案。真的不需要写十几行或更多行 JS,是吗?
-
版主,您遇到的问题是
dialog元素在其处于打开状态时占据了整个窗口。因此,网页内的所有点击,在模式打开后,注册为对对话框元素的点击,这说明您将处于一个更好的位置来编写自己的模式,给定dialogelement 甚至在一些仍然相关的浏览器(例如 Firefox 和 Safari)中都不受支持。
标签: javascript dialog