【问题标题】:Why is the "dialog" element disabled by default in Firefox?为什么在 Firefox 中默认禁用“对话框”元素?
【发布时间】:2020-02-02 02:56:39
【问题描述】:

根据caniuse.com,Chrome 从 2014 年开始就支持dialog。它还说 Firefox 确实支持它,但前提是你在about:config 中启用了dom.dialog_element.enabled

dialog 元素的 MDN 页面没有列出任何此类注释,也没有包含对其禁用原因的解释:https://developer.mozilla.org/en-US/docs/Web/HTML/Element/dialog

为什么在 Chrome 拥有 5 年之后,Firefox 默认禁用 dialog 元素? Mozilla 是否出于某种原因不鼓励使用它?

【问题讨论】:

  • 对于您的“为什么”问题并没有真正简洁的答案,但您可以在bugzilla.mozilla.org/show_bug.cgi?id=840640查看有关此问题的一些讨论
  • 那个 developer.mozilla.org 页面确实在浏览器兼容性表中提到了 Firefox 问题,但是您必须单击 Firefox 下方的小向下箭头才能使注释可见。

标签: html firefox cross-browser web-standards


【解决方案1】:

<dialog> 元素可以替换为使用 HTML、CSS 和 JavaScript 手动创建的其他模式对话框。

<dialog> 不适用于移动设备。关闭一个的唯一方法是 Esc。

如果您使用document.getElementById("mydialog").style.display="none";,它将被永久禁用。

另一方面,手动创建的模态可以使用上述方法关闭。 对话框元素适用于台式计算机。

【讨论】:

  • 您应该向对话框元素添加“关闭”或“取消”按钮,或者至少像 FancyBox 及其同类产品那样添加“关闭”按钮。我个人为关闭元素的背景添加了一个点击/触摸事件监听器。
  • 这不能回答问题。
【解决方案2】:

the bug tracker有一些细节。

简而言之,当前实现存在错误,因此不认为它已准备好发布。这些大多与可访问性相关(例如,在打开和关闭对话框时聚焦正确的元素)。

【讨论】:

    猜你喜欢
    • 2010-11-27
    • 2016-06-19
    • 2012-08-22
    • 2011-10-28
    • 1970-01-01
    • 1970-01-01
    • 2022-01-19
    • 1970-01-01
    • 2014-07-26
    相关资源
    最近更新 更多