とりあえず、同時にCtrlが押されたとか、
そういうのは判断できた。
とはいっても、ここのサイトそのまんまだけど。。。
あとは、同時押しでCtrlと何が押されたかを判定できればOK
Ctrl判定すると、文字が取得できない。。。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<title> .:: Sample Play Keepaway ::.</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta http-equiv="cache-control" content="no-cache">
<meta name="Author" content="Sample">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<script language="Javascript" type="text/javascript"><!--
function accesskey(e) {
var ctrl = false;
var shift = false;
var alt = false;
var keycode = -1;
// Mozilla(Firefox, NN) and Opera
if (e != null) {
ctrl = typeof e.modifiers == 'undefined' ? e.ctrlKey : e.modifiers & Event.CONTROL_MASK;
shift = typeof e.modifiers == 'undefined' ? e.shiftKey : e.modifiers & Event.SHIFT_MASK;
alt = typeof e.modifiers == 'undefined' ? e.altKey : e.modifiers & Event.ALT_MASK;
// イベントの上位伝播を防止
e.preventDefault();
e.stopPropagation();
} else { // Internet Explorer
ctrl = event.ctrlKey;
shift = event.shiftKey;
alt = event.altKey;
// イベントの上位伝播を防止
event.returnValue = false;
event.cancelBubble = true;
}
if (!ctrl && !shift && !alt) {
if (e != null) {
keycode = e.which;
} else {
keycode = event.keyCode;
}
// キーコードの文字を取得
keychar = String.fromCharCode(keycode).toUpperCase();
}
document.getElementById('result0').innerHTML = keycode;
document.getElementById('result1').innerHTML = keychar;
// Ctrl同時押しの場合
if (ctrl) {
document.getElementById('result2').innerHTML = 'Ctrlが押されました';
} else if (shift) {// Shift同時押しの場合
document.getElementById('result2').innerHTML = 'Shiftが押されました';
} else if (alt){ // Alt同時押しの場合
document.getElementById('result2').innerHTML = 'Altが押されました';
}
}
document.onkeydown = accesskey;
//--></script>
</head>
<body>
<div id="result0"></div>
<hr/>
<div id="result1"></div>
<hr/>
<div id="result2"></div>
</body>
</html>
0 件のコメント:
コメントを投稿