Webアプリケーションを開発していて、IEのショートカットキーを無効化したいことがあります。
ネットで色々検索したところ、通常、JavaScript上で押下されたキーコードで判定して「return false;」すれば無効化していますが、実際にはいくつかのショートカットキーは無効化されませんでした。
代替手段として、alert()を表示することで無効化できました。
●IE11でCtrl+OとAlt+Zのショートカットキーを無効化する
サンプルソース(jsfiddle)
https://jsfiddle.net/saimjcf/tmaqf8aw/
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
function onKeyDown(e) { e = e || window.event; if (e.keyCode === 79 && e.ctrlKey) { e.preventDefault(); e.stopPropagation(); e.returnValue = false; if ($("#enableWorkaround").is(":checked")) { customMethodCtrl(e.keyCode); alert("禁止されているCtrlキーが押下されました"); } return false; } if (e.keyCode === 90 && e.altKey) { e.preventDefault(); e.stopPropagation(); e.returnValue = false; if ($("#enableWorkaround").is(":checked")) { customMethodAlt(e.keyCode); alert("禁止されているAltキーが押下されました"); } else { } return false; } } function customMethodCtrl(x) { $("#output").append("<p>Ctrl , KeyCode = " + x + "</p>"); return false; } function customMethodAlt(x) { $("#output").append("<p>Alt , KeyCode = " + x + "</p>"); return false; } $(document).ready(function() { $(document).on("keydown", function (e) { onKeyDown(e); }); }); |
もっと良い方法あったら知りたい・・・