DOBON.NET DOBON.NETプログラミング掲示板過去ログ

ASP.NETで独自のファンクションキー設定

環境/言語:[OS : Windows Server 2003 / 言語 : Visual Basic .NET / .NET Framework : 1.1]
分類:[ASP.NET]

2005/08/10(Wed) 13:49:57 編集(投稿者)
2005/08/10(Wed) 13:48:10 編集(投稿者)
2005/08/10(Wed) 13:48:05 編集(投稿者)

【解決したい問題】

例えば、画面に検索ボタン、閉じるボタンがあったとして、ファンクションキーでもボタンを押下時と同じ処理を行いたいのです。
処理は自分なりに調べて実現しましたが、実装方法としてはこのやり方しかないのでしょうか?
もっとスマートな方法がありましたらご教授頂きたく投稿させて頂きました。

【解決するために何をしたか】
下記のようなコードで実装しました。

1.JavaScriptでキーダウンイベントを拾い、F2〜F12が押された場合、キーコードを隠し項目であるtxtKeyCd(TextBoxです)に入れて、キーコードをクリアして、サブミットします。

window.document.onkeydown = key_get;
function key_get() {
chr0 = event.keyCode;
if (chr0 >= 113 && chr0 <= 123) {
document.Form1.txtKeyCd.value = chr0;
event.keyCode =0;
document.Form1.submit();
return false;
}else{
document.Form1.txtKeyCd.value = '';
}
}

ASP.NETの方はページロードイベントのところでポストバック時にtxtKeyCdに何が入ってるかを見て処理を振り分けています。

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
If IsPostBack Then
Select Case txtKeyCd.Text
Case "113" 'F2が押された
'なんらかの処理
Case "114" 'F3が押された
'なんらかの処理
Case "115" 'F4が押された
'なんらかの処理
・・・以下略
End Select
End If
End Sub
たかすです。ヒントではありません。

Webアプリケーションですよね。
Javascriptを使用してブラウザの機能を握りつぶすのですか?

IEであれば、F11の全画面表示やF5の再表示という機能を
隠そうとしているわけですよね。
お返事ありがとうございます。
環境の説明が不足していますね。申し訳ありません。
おっしゃるとおりWebアプリケーションで、ブラウザもIE6限定です。
ファンクションキーの元々の機能も潰しますし、ツールバー、メニュー等も表示しないよう設定します。
F1はコードをクリアしても潰せないので残るんですが(汗)
可能であればAlt+←などのショートカットの機能も潰そうと考えています。
2005/08/10(Wed) 16:41:11 編集(投稿者)
2005/08/10(Wed) 16:38:43 編集(投稿者)

追記。

作成されたWebアプリケーションは
IE以外のブラウザでもフルサービスを享受できますか?

ちょっと気になったので書いてみました。

追記。

もうすぐIE7きますよー

追記その2。

なんか右クリックも握りつぶしそう...
もし外部ネットワークなら悪戯アクセスを意識したほうがいいかも
> 作成されたWebアプリケーションは
> IE以外のブラウザでもフルサービスを享受できますか?

> もうすぐIE7きますよー

IEでしかも6でしか動かさないのが前提なので。。。

> なんか右クリックも握りつぶしそう...
> もし外部ネットワークなら悪戯アクセスを意識したほうがいいかも
イントラ限定です。
右クリックもつぶしますか?と聞くとそうして欲しいとか言われそうです。。。
Enterで項目移動とかも言われましたので。。。
心の中ではASP.NETじゃなくてもいいやん、こんなのとぶつぶつ言いながら最初は作っていましたが
気にするとはげるので言われるがままです(汗)

激しく脱線して申し訳ないです。

DOBON.NET | プログラミング道 | プログラミング掲示板