Ajax 在GWT中单击鼠标右键?

Ajax 在GWT中单击鼠标右键?,ajax,gwt,right-click,Ajax,Gwt,Right Click,我正在用GWT构建一个AJAXWeb应用程序,我想使用右键单击来实现各种功能,就像在桌面应用程序中一样。但是,右键单击会生成标准的Web上下文菜单,并且不会调用void onClick(ClickEvent事件)。有人想出办法让它工作吗?谢谢 事实证明,您可以通过扩展DeckPanel来实现这一点。这里有一个很好的讨论,还有一个很好的演示,证明了它的有效性 尽管有一些方法可以做到这一点,但我相信GWT团队对此进行了讨论,并决定在web应用程序中启用右键单击是一件坏事,因此做出了不支持它的简洁决定

我正在用GWT构建一个AJAXWeb应用程序,我想使用右键单击来实现各种功能,就像在桌面应用程序中一样。但是,右键单击会生成标准的Web上下文菜单,并且不会调用void onClick(ClickEvent事件)。有人想出办法让它工作吗?谢谢

事实证明,您可以通过扩展
DeckPanel
来实现这一点。这里有一个很好的讨论,还有一个很好的演示,证明了它的有效性


尽管有一些方法可以做到这一点,但我相信GWT团队对此进行了讨论,并决定在web应用程序中启用右键单击是一件坏事,因此做出了不支持它的简洁决定。争论的焦点是,右键单击应该继续按预期工作(打开主机浏览器的右键单击上下文菜单),而覆盖它会破坏预期的行为,这将是一种糟糕的做法。虽然我有过右键单击上下文菜单通常有用的例子,但我倾向于同意GWT团队的决定

easy peasy,在contextmenuhandler上添加一个侦听器,它将根据用户右键单击的位置显示一个小部件

最后,您需要禁用浏览器菜单以完全重载这种类型的上下文菜单。除了opera之外,其他浏览器都可以使用。但老实说,这些日子谁在用它呢^

<body oncontextmenu="return false;">


我完全不同意。我猜大多数GWT开发人员使用GWT是为了更好地模拟桌面体验。这包括上下文(右键)单击。有许多企业应用程序使用右键点击是有意义的。我知道你的意思,一开始我对右键点击缺失感到非常沮丧,但在阅读了GWT团队的论证后,我慢慢恢复了理智。@Daniel Vaughan:有趣的一点。如果你在你提到的GWT讨论中添加了一个链接,我会对此投赞成票。请>\u>这就是为什么他们有一个ContextMenuHandler,大约在2008/2009年实施。他们只是没有把它放在showcase上,因为它是需要您阅读API的高级功能之一。如果没有阻止默认浏览器右键单击菜单的帮助,通过使用MouseDownHandler而不是ClickHandler,您可以捕获右键单击。这很有效,并且会打嗝,因为您没有使用gwt中的核心事件引擎,所以屏幕上呈现了大量对象。您将获得对。那部分快把我逼疯了!这就是魔法!你不知道在花哨的JS框架出现之前,我花了多少年才弄明白这一点!
<body oncontextmenu="return false;">