【问题标题】:How does the MDN website change the context menu?MDN 网站如何更改上下文菜单?
【发布时间】:2014-07-02 22:41:23
【问题描述】:

MDN(Mozilla 开发者网络)网站如何更改上下文菜单?
例如,this page
我以为他们创建了整个上下文菜单,以便在触发 contextmenu 事件时调用它,但这似乎有点疯狂。
此外,它在 Chrome 上不起作用,所以我想它是 Firefox 独有的功能。
有人知道他们是怎么做到的吗?

【问题讨论】:

  • 上下文菜单对我来说看起来一样吗?可以加个截图吗?
  • 我在问题上添加了图片
  • 我无法在 Firefox 30 上重现此内容
  • 我现在使用的是 Firefox 31.0 (Beta)
  • 这是我在 Firefox 30 上看到的,左边的菜单是我在 MDN 上看到的,右边是我在 Google 上看到的。我假设@patkoala 正在谈论添加“编辑页面”和“查看页面历史记录”。 i.imgur.com/dQ3ncKK.png

标签: javascript css mozilla


【解决方案1】:

文档有点稀疏,但它使用的是contextmenu attribute which is new in HTML5。它使用menu HTML tag,这与它的 HTML4 实现不同。浏览器支持isn't so great,但在Firefox 8 中支持。

这是页面上 DOM 的屏幕截图,显示了相关的 HTML、body 上的contextmenu 属性和展开的menu 标签。

更新:此答案之前声明 Chrome 36 及更高版本支持此功能,如 caniuse 页面之前所述。情况似乎并非如此,caniuse 已删除此信息。

【讨论】:

    【解决方案2】:

    我刚刚写完一篇关于 HTML5 菜单和浏览器支持的文章:https://dpogue.ca/articles/html5-menu.html

    总结一下:

    • Firefox 使用菜单标签上较旧的(不符合规范的)type="context" 属性来实现这一点。 Firefox 更新到较新的规范存在错误。

    • Chrome 根据 Chrome 41 的规范 (type="popup") 实现它,但它位于“实验性 Web 平台功能”标志的后面。

    由于 type 属性的这种差异,基本上不可能同时针对两种实现。虽然type="context" 表示 Firefox 用户会看到菜单,但它与规范相反,可能不会被其他浏览器支持。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-31
    • 2016-05-19
    • 2015-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-07
    • 2015-01-19
    相关资源
    最近更新 更多