5

私はRTSゲームに取り組んでいます。このゲームでは、ユニットを選択し、右クリックしてどこかに移動させることができます。右クリックして、ユニットが移動したいポイントのリストをキューに入れることもできます。

FFを除くすべてのブラウザで、これは完全に機能しています。

ただし、Firefoxでは、Shiftキーを押しながら右クリックすると、コンテキストメニューがトリガーされます(Shiftキーを押さずに右クリックするとトリガーされません)。コンテキストメニューイベントを処理してpreventDefaultを呼び出していますが、Shiftボタンを押したままにするとFFでは何も実行されないようです。

FFでこの動作をブロックする方法はありますか?

私のゲームはここにあります:https : //mod.it/4plhXo3lと36行目のRTSBoard.jsファイルの問題のコード。

4

2 に答える 2

3

event.shiftKey を false に設定し、preventDefault() と stopPropagation() を呼び出してから false を返すことで、Firefox でこれを機能させることができました。次に、ドキュメント モデルの onclick イベントと ondblclick イベントを、実際に使用したのと同じ関数に設定し、さらに shiftkey の追加設定を false に設定します。マウスアップ イベントに対してもこれを行う必要がありました。これは、クリックとドラッグによってコンテキスト メニューがポップアップすることもあったためです。

完全に 100% 無効にできるかどうかはわかりませんが、これが最も近いようです。

于 2013-08-17T03:42:26.830 に答える
0

私自身の質問に答えます。document.onclick イベントで preventDefault と stopPropagation を呼び出すと、問題が解決するようです。

詳細については、この reddit スレッドを参照してください: http://www.reddit.com/r/javascript/comments/1agoj8/is_it_possible_to_block_the_shift_right_click/

于 2013-03-17T18:00:47.027 に答える