event_key.html
3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>イベントサンプル</title>
<style type="text/css">
body {
font-family: Arial;
}
#disparea {
width: 150px;
font-size: 40px;
background-color: #CCCCCC;
border: #4C4C4C solid 1px;
text-align: center;
padding: 20px 20px 20px 20px;
margin: 20px 20px 20px 20px;
}
#result {
width: 150px;
border: #4C4C4C solid 1px;
text-align: center;
padding: 20px 20px 20px 20px;
margin: 20px 20px 20px 20px;
}
</style>
<script language="javascript" type="text/javascript">
var q_keycode;
// 画面に問題となるアルファベットをランダムに表示し、キー入力を受け付ける。
// 入力されたキーが正解か不正解かを判定し、結果を表示する。
function playGame(e) {
// 押されたキーのキーコードを取得する
var in_keycode = e.keyCode;
// 始めて画面が表示されたとき、もしくはエンターキーが押されたら、
// 問題となるアルファベットをランダムに抽出し、画面に表示する。
// エンターキー以外のキーが押されたら、正解・不正解を判定する。
if(q_keycode == undefined || in_keycode == 13) {
// キーコードをランダムに抽出
q_keycode = Math.floor(Math.random() * 26) + 65;
// 問題表示領域に、アルファベットを表示
document.getElementById('disparea').childNodes[0].nodeValue = String.fromCharCode(q_keycode);
// 結果表示領域をクリア
document.getElementById('result').childNodes[0].nodeValue = '';
} else {
// 結果を判定し、結果表示領域に表示
if(in_keycode == q_keycode) {
document.getElementById('result').childNodes[0].nodeValue = '正解';
} else {
document.getElementById('result').childNodes[0].nodeValue = '残念';
}
}
}
// keydownイベントリスナーをセットする
function setListeners(e) {
// キーが押されたらplayGame()関数が実行されるようリスナーをセット
addListener(document, 'keydown', playGame, false);
}
function addListener(elem, eventType, func, cap) {
if(elem.addEventListener) {
elem.addEventListener(eventType, func, cap);
} else if(elem.attachEvent) {
elem.attachEvent('on' + eventType, func);
} else {
alert('ご利用のブラウザーはサポートされていません。');
return false;
}
}
// HTMLがロードされた際に、setListeners()関数を実行させる
addListener(window, 'load', setListeners, false);
</script>
</head>
<body>
<!-- 問題表示領域 -->
<div>▼ 質問</div>
<div id="disparea">?</div>
<!-- 結果表示領域 -->
<div>▼ 結果</div>
<div id="result">Press any key.</div>
</body>
</html>