プロが教える店舗&オフィスのセキュリティ対策術

タイトルの通り、現在IE8環境で、ショートカットキーを無効にする方法を模索しています。
ネットで調べた結果、イベントを受け取ることまでは成功するのですが、
それを無効化することができません(一部のショートカットキー)。

現在試しているのが
Ctrl++→拡大
Ctrl+-→縮小
の二つです。

htmlのバージョンは4.01 Strictを使用しています。

以下ソース
window.document.attachEvent('onkeydown', onKeyEvent);
window.document.attachEvent('onkeyup', onKeyEvent);
function onKeyEvent(e){
if(!e) e = window.event;

//確認用
//console.log("Key Code : " + e.keyCode);
//console.log("Event Type : " + e.type);
//console.log("Ctrl Key : " + e.ctrlKey);

if(e.keyCode != 17){
if(e.ctrlKey){
switch(e.keyCode){
case 187:
case 189:
//e.keyCode = 0;
e.returnValue = false;
e.cancelBubble = true;
//window.event = e;
return false;
}
}
}

return true;
}


alert()をいれると無効化できるといった記述も見たのですが、
今回はその方法は使わずに実装する予定です。

どなたか方法をご存知でしたら、ご教授ください。


(コメントアウトしているものも試しましたが、うまくいきませんでした)

A 回答 (2件)

よくわかってませんが・・・



ドキュメントレベルでのイベント処理なので、バブリングをキャンセルしても処理されてしまっているのかな?

確認はしていませんが、キャンセルできない場合の対処法のアイデアとして、ctr++が入力されたらctr+-のキーイベントを発火させるといった要領で打消すことができるのではないかと想像します。

ただし、ご提示のようにkeydown、keyupの両方を取得して発火させると、キー入力に対して打消すイベントを起こしすぎになると思いますのでご注意を。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

イベントの打消しは考えていたのですが、ご忠告の通り、
無限イベント対策などを考えるのが面倒になったため、
抑止の方法を模索してました。

ただ、やはり抑止は出来ないようなので、
とりあえずは打消しイベント発火で対策しておこうと思います。

お礼日時:2014/09/11 01:02

http://answers.microsoft.com/ja-jp/ie/forum/ie8- …

無理な様です。
ブラウザの機能ですしね・・・

http://oshiete.goo.ne.jp/qa/6127224.html
bodyのCSSを変更する手もあるようですが動かしてみると微妙でした。
    • good
    • 0
この回答へのお礼

解答ありがとうございます。

やはり無理ですか…。
抑止はあきらめて、別の方法で対処したいと思います。

お礼日時:2014/09/11 00:53

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!