読者です 読者をやめる 読者になる 読者になる

前回jQueryファンクションキー制御について書きましたが、面倒なんでプラグインにしました。


Enter/Tab項目移動とFunctionKey制御 jqKeyプラグイン更新 - せかにゃ~
内容が古くなりましたので、上記記事をさんしょうしてください。

jqFunctionKeys.js SourceCode
$.extend($.fn,{
	FunctionKeys:function(o){
		
		var d = document;

		//IEのF1キーヘルプを解除します。
		if(d.all){window.onhelp=function(){return false;}}

		//キーダウンでイベントを取得します
		$(this).keydown(function(e){
			var	k	=	e.keyCode;	//	キーコード
			var	a	=	e.altKey;	//	altキー
			var	s	=	e.shiftKey;	//	shiftキー
			var	c	=	e.ctrlKey;	//	ctrlキー
			var	obj	=	e.target;	//	イベントがあったオブジェクトの取得

			if(k>=112&&k<=123){
				//F1 Key
				if(o.F1&&k==112){o.F1(obj,s,c,a);}else
				//F2 Key
				if(o.F2&&k==113){o.F2(obj,s,c,a);}else
				//F3 Key
				if(o.F3&&k==114){o.F3(obj,s,c,a);}else
				//F4 Key
				if(o.F4&&k==115){o.F4(obj,s,c,a);}else
				//F5 Key
				if(o.F5&&k==116){o.F5(obj,s,c,a);}else
				//F6 Key
				if(o.F6&&k==117){o.F6(obj,s,c,a);}else
				//F7 Key
				if(o.F7&&k==118){o.F7(obj,s,c,a);}else
				//F8 Key
				if(o.F8&&k==119){o.F8(obj,s,c,a);}else
				//F9 Key
				if(o.F9&&k==120){o.F9(obj,s,c,a);}else
				//F10 Key
				if(o.F10&&k==121){o.F10(obj,s,c,a);}else
				//F11 Key
				if(o.F11&&k==122){o.F11(obj,s,c,a);}else
				//F12 Key
				if(o.F12&&k==123){o.F12(obj,s,c,a);}

				//IEの場合は、KeyCodeに0をセットで、
				//F3検索・F5更新・F11最大化等をキャンセルします。
				if(d.all) window.event.keyCode = 0;

				//通常は、戻り値にfalseでイベントキャンセルされます。
				return false;
			}

		});
	}
});
使い方 jquery.jsとjqFunctionKeys.js 動作させたいファンクションキーを関数として登録します
//==============================
// キー項入力 イベント
//==============================
$(document).FunctionKeys({
	F1:function(obj,s,c,a){alert("F1\nFocusObj:tagName "+obj.tagName+"\nType:"+obj.type+"\nid:"+obj.id+"\nname:"+obj.name+"\nshift:"+s+"\nctrt:"+a+"\nalt:"+a);}
	,F2:function(obj,s,c,a){alert("F2\nshift:"+s+"\nctrt:"+a+"\nalt:"+a+"\nobj:"+obj.tagName);}
	,F3:function(obj,s,c,a){alert("F3\nshift:"+s+"\nctrt:"+a+"\nalt:"+a+"\nobj:"+obj.tagName);}
	,F4:function(obj,s,c,a){alert("F4\nshift:"+s+"\nctrt:"+a+"\nalt:"+a+"\nobj:"+obj.tagName);}
});
動作サンプルWinのIE8とFirefox3.5のみ確認 F1-F12キーを押して動作確認してください。 Shift,Ctrl,Altを押しながらの操作にも対応しています。 ブラウザ規定のファンクションキー動作は、キャンセルされます ご自由に改造して使ってください