- PR -

JavaScript 特定のショートカットキー抑止について

1
投稿者投稿内容
かえで
常連さん
会議室デビュー日: 2004/09/16
投稿数: 38
投稿日時: 2005-04-13 20:52
いつも拝見させて頂いております。

今、ASP.NET(VB)を用いてWEBアプリケーションを作成しております。

【仕様】
[Ctrl+C]や[Ctrl+V]などのショートカットキーは有効にする。
[Ctrl+P]と[Ctrl+O]の特定のショートカットキーは抑止する。

【質問内容】
JavaScriptにて、[Ctrl+P]と[Ctrl+O]を抑止することはできるのでしょうか

【開発環境】
Visual Studio .net 2003
.NetFramework 1.1

【今の動作確認テストソース】
<script language="JavaScript">
<!--
//キーeventをセットする
if(document.layers)document.captureEvents(Event.KEYDOWN,Event.KEYPRESS);
document.onkeydown = lsubKeyDown_Event;
document.onkeypress = lsubKeyDown_Event;
//-->
</script>

function lsubKeyDown_Event(e) {

var lintKeyCode;

lintKeyCode = parseInt(gfunGetKeyCode(e));

if (window.event.ctrlKey == true) {
switch (lintKeyCode) {
case 80: //「P」
case 79: //「O」
return (false);
break;
default:
return (true);
break;
}
}
}

function gfunGetKeyCode(e){
if(document.all) {
return event.keyCode
} else if(document.getElementById) {
return (e.keyCode!=0)?e.keyCode:e.charCode
} else if(document.layers) {
return e.which
}
}

上記ソースにて、他のショートカットも踏まえいろいろ実験しましたが、ダイアログが表示されるもの([Ctrl+F]など)が抑止不可でした。
(すべてのパターンにて実験したわけではないので、抑止可能なものもあるかもしれません)

[Ctrl+P]や[Ctrl+O]等はオペレーティング・システム固有キー・コマンドに割り当てられているものなのでしょうか?
そうであれば、「JavaScriptで抑止するということは無理では」という結論も分かるような気がします。


ご存知の方がいらっしゃれば、ご教授願います。
べる
ぬし
会議室デビュー日: 2003/09/20
投稿数: 1093
投稿日時: 2005-04-14 01:53
確かにfalseを返しても印刷ダイアログが出ますね。不思議なのは
case 80: //「P」
↑これの下に
alert('印刷不可');
を入れるとメッセージが出た後印刷ダイアログが出ないです。(当方XPSP1,IE6)
かえで
常連さん
会議室デビュー日: 2004/09/16
投稿数: 38
投稿日時: 2005-04-14 10:49
おはようございます。

引用:

case 80: //「P」
↑これの下に
alert('印刷不可');
を入れるとメッセージが出た後印刷ダイアログが出ないです。(当方XPSP1,IE6)



べるさん、ご指摘ありがとうございます。
当方も先ほど動作確認しました。
確かにalertをはさむと機能は抑止できました!
でも、すっごく不思議です。。。 ̄□ ̄;)

1

スキルアップ/キャリアアップ(JOB@IT)