为什么';GWT中的右键单击捕获是否可以在IE中工作?

为什么';GWT中的右键单击捕获是否可以在IE中工作?,gwt,right-click,Gwt,Right Click,我试图捕捉右键点击一个小部件,弹出我自己的上下文菜单,而不是浏览器的。关于这一点,有几篇参考文献,但最流行的一篇有点过时,尽管一些注释包含了更新的代码片段 我拼凑了一些片段,在Chrome和FF中工作,但在IE中不工作。在IE中,它不显示默认的浏览器上下文菜单,但不显示我的菜单。我刚刚进入GWT,所以我假设我没有使用正确类型的处理程序或事件做正确的事情。我还使用了gwt图形模块,如果相关的话,我扩展的矩形类就是从这个模块来的 这是我的密码: public class RectangleRight

我试图捕捉右键点击一个小部件,弹出我自己的上下文菜单,而不是浏览器的。关于这一点,有几篇参考文献,但最流行的一篇有点过时,尽管一些注释包含了更新的代码片段

我拼凑了一些片段,在Chrome和FF中工作,但在IE中不工作。在IE中,它不显示默认的浏览器上下文菜单,但不显示我的菜单。我刚刚进入GWT,所以我假设我没有使用正确类型的处理程序或事件做正确的事情。我还使用了gwt图形模块,如果相关的话,我扩展的矩形类就是从这个模块来的

这是我的密码:

public class RectangleRightClickable extends Rectangle {

public RectangleRightClickable(int x, int y, int width, int height) {
    super(x, y, width, height);
    sinkEvents(Event.ONCONTEXTMENU);
}

public void onBrowserEvent(Event event) {
    GWT.log("onBrowserEvent");
    event.stopPropagation();
    event.preventDefault();
    GWT.log("event type : " + DOM.eventGetType(event));
    switch(DOM.eventGetType(event)) {
    case Event.ONCONTEXTMENU:
        if (DOM.eventGetButton(event) == Event.BUTTON_RIGHT) {
            GWT.log("Event.BUTTON_RIGHT", null);
            showMenu();
        }
        break;
    default:
        GWT.log(event.toString());
        break;
    }
}   

protected void showMenu() {
    final RectangleRightClickable parent = this;
    final PopupMenu popMenu = new PopupMenu();
    popMenu.addMenuItem(new Label("Add thing"));
    popMenu.setPopupPositionAndShow(new PopupPanel.PositionCallback() {
        public void setPosition(int offsetWidth, int offsetHeight) {
            int left = parent.getX() + parent.getWidth();
            int top = parent.getY() + parent.getWidth();
            popMenu.setPopupPosition(left, top);
        }
    });

}
}

在GWT谷歌群组列表中得到了这样的回应,它起到了作用:

addDomHandler(new ContextMenuHandler() 
{ 
    @Override 
    public void onContextMenu(ContextMenuEvent event) 
    { 
        showMenu(); 
        event.preventDefault(); 
    } 
}, ContextMenuEvent.getType());