【问题标题】:Opera, custom context menu, picking up the right clickOpera,自定义上下文菜单,拾取右键
【发布时间】:2009-12-09 00:34:30
【问题描述】:

我想在我正在处理的网站上实现自定义上下文菜单。我使用了 document.oncontextmenu,它适用于除 Opera 之外的所有我正在开发的主要浏览器。我将如何在 Opera 中获得相同的结果?我需要禁用默认上下文菜单并显示我的。

我想做的第一件事是点击鼠标右键,因为 Opera 无法识别 document.body.onmousedown...

谢谢,R.

【问题讨论】:

  • 这很烦人,但我听说这是 Opera 的意识形态问题。他们认为用户应该始终可以访问 Opera 上下文菜单。如果您确实找到了禁用默认上下文菜单的解决方法,我相信我们中的许多人都想知道!
  • 终于在 Opera 10.5 中修复了这个问题

标签: javascript html opera


【解决方案1】:

做了一点研究,我在 jQuery context menu plugin987654321@ 上发现了一个有趣的小花絮

*Opera 9.5 有一个允许脚本检测右键单击的选项,但它 默认情况下禁用。此外, Opera 仍然不允许 JavaScript 禁用浏览器的默认设置 导致可用性的上下文菜单 冲突。

opera.linux google group 中发现了另一个有趣的点,可能会引导您朝着正确的方向前进

Opera 不支持 JavaScript 事件oncontextmenu 这些 脚本使用。 Opera 确实支持 onrightclick,但正如你所见 默认禁用。我被告知在 我们的开发人员过去认为 实施支持并非微不足道 将oncontextmenu 设为别名 对于onrightclick,前者 显然做得更多。

... 这个代码 sn-p 使用event.button 来测试右键...

          addEventListener('mouseup',function(e){
                    if( e && e.button == 2 ){
                            document.write('a');
                            return false;
                    }
            },true); 

但是,这些解决方案都无法满足您的需求(基于第一个引用的部分)... 似乎 Opera 认为右键单击网页应该始终为用户提供“标准”上下文菜单。

【讨论】:

    【解决方案2】:

    我相信 Opera 故意没有将右键单击传递给脚本。太多的网站在右键单击时弹出愚蠢的“复制保护”消息,我猜。

    我假设更改(右键单击 -> 编辑站点首选项 -> 脚本 -> 允许脚本检测上下文菜单事件)使 Opera 的行为符合您的预期?

    【讨论】:

    • 谢谢,一些有用的信息,但没有它没有达到我想要的效果,真可惜:) 它不是版权问题,它实际上添加了功能,所以它不起作用的事实是有点烦人。
    【解决方案3】:

    uTorrent Web UI 以某种方式在 Opera 中右键单击时显示自定义上下文菜单。您可以查看其来源以了解其实施方式。

    【讨论】:

      【解决方案4】:

      简而言之:您必须在 Opera 的设置中启用首选项,并且尚不支持 oncontextmenu,因此您必须监听 mousedown 或 click 事件。

      某些脚本在启用首选项时使用(非常丑陋的)hack 来禁用 Opera 自己的上下文菜单:从 mousedown 事件中,创建一个不可见的 元素并将其放置在发生单击的位置。因为 Opera 没有按钮的右键菜单,所以它的内部菜单不会出现。正如我所说,它非常丑陋:-p

      适当的 oncontextmenu 支持应该会在 Opera 的下一个发行版本中出现 - 当然不包括较小的稳定性和安全更新。如果您不喜欢丑陋的解决方法,请等待它..

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2010-10-16
        • 1970-01-01
        • 2021-04-07
        • 1970-01-01
        • 2011-12-07
        • 2016-03-05
        • 1970-01-01
        相关资源
        最近更新 更多