My gwt 1.6アプリケーションがハイパーリンクのマウスクリックを傍受するため、ユーザーが「著者」へのリンクをShift-クリックすると、著者のページに移動する代わりにEdit ...ダイアログボックスが表示されます。ページ。それはうまくいきます。コントロールのクリックのコンテキストメニューを抑制する、gwt 1.6
私は、ユーザーが複数の著者を選択するためにコントロールをクリックできるようにしたいと思いますが、ブラウザのデフォルトのポップアップメニューを非表示にする方法を理解できません。このコードはシフトクリックを正しく処理しますが、私は時を制御クリックホストされているブラウザに失敗し、Firefoxで半失敗(handleCtrlClick()と呼ばれるが、私はまだブラウザのメニューを取得します):
public void onModuleLoad() {
Event.addNativePreviewHandler(this);
}
//
// Preview events-- look for shift-clicks on paper/author links, and pops up
// edit dialog boxes.
// And looks for control-click to do multiple selection.
//
public void onPreviewNativeEvent(Event.NativePreviewEvent pe) {
NativeEvent e = pe.getNativeEvent();
switch (Event.getTypeInt(e.getType())) {
case Event.ONCLICK:
if (e.getShiftKey()) { handleShiftClick(e); }
if (e.getCtrlKey()) { handleCtrlClick(e); }
break;
case Event.ONCONTEXTMENU:
if (e.getCtrlKey()) { // THIS IS NOT WORKING...
e.preventDefault();
e.stopPropagation();
}
break;
}
}
ブレークポイントONCONTEXTMENUの中にセットされたケースは決して呼び出されません。
希望する動作: コントロール左クリック:複数選択 右クリック:ブラウザのメニューをポップアップします。 問題は、Firefox(少なくとも)はコントロールの左クリックを右クリックと同じように扱うことです(oncontextmenuイベントを発生させます)。 – gavinandresen