JSで、二重のCtrlキーの押下を検出
-
19-09-2019 - |
質問
私は、カスタムCMSを持っており、300ミリ秒、たとえば、以内に2回 Ctrlキーキーを押すことによってトリガ「ショートカットメニュー」を追加したいと思います。 私はプロトタイプを使用するので、私の出発点は明らかにされます:
Event.observe(document, 'keypress', function(event)
{ if(event.keyCode == Event.KEY_XYZ) { show_shortcuts});
現時点での私のアプローチは、ミリ秒単位で現在の時刻とグローバル変数を投入し、キー入力が300未満ミリ秒前に起こっているかどうか、各キー操作にチェックされるだろう。
しかし、おそらくよりエレガントな解決策はありますか?
解決
この作業をする必要があります。 AltキーまたはShiftキーのようないくつかの他のキーが同時に押されていない場合はたぶんいくつかは、さらにチェックを追加します。ちょうど尋ねると、私は明確化を提供しない場合、それは自明であると思います。
var dblCtrlKey = 0;
Event.observe(document, 'keydown', function(event) {
if (dblCtrlKey != 0 && event.keyCode == 17) {
alert("Ok double ctrl");
} else {
dblCtrlKey = setTimeout('dblCtrlKey = 0;', 300);
}
});
所属していません StackOverflow