0

これまでに見つけたり試したりしたことで、適切に機能するものを助けたり生み出したりしたものはありません。

これは、私の数十回の失敗した試行の 1 つの例です。

<html>
<head>
<title>Keyboard Test</title>
<script type="text/javascript">
onkeydown=text
function test() {
var key=String.fromCharCode;
if (key=="a")
alert("Hello!");
}
</script>
</head>
</html>

誰かがこれを適切に試みる方法と、それが機能する理由を教えてもらえますか?

4

3 に答える 3

0

"onkeydown=text" -- これはタイプミスですか? 「onkeydown=test」のことですか?

于 2013-02-27T21:29:47.567 に答える
0

これは、あなたがやろうとしていることのほとんどを行う例ですが、非常に異なる方法です: http://jsbin.com/usonoh/1/edit

HTML:

<input id="foo">

Javascript:

document.getElementById("foo").addEventListener("keydown", function (ev) {
  if (ev.which === 'A'.charCodeAt(0)) {
    alert("A!");
  }
});

うまくいけば、それは非常に簡単ですが、ID「foo」のHTML要素を取得し、イベントリスナー(渡す関数にすぎません)を「keydown」イベントに追加し、リスナー自体でチェックします「foo」入力で押されたキーが charcode 65 (「a」キー) かどうか。

一般に、Javascript でイベント リスナーをアタッチし、on* プロパティを設定するのではなく、addEventListener メソッドを使用する必要があります。

DOM API 情報を見つけるには、Mozilla Developer Network を強くお勧めします。この例に関連するページは次のとおりです。

https://developer.mozilla.org/en-US/docs/DOM/document.getElementById https://developer.mozilla.org/en-US/docs/DOM/element.addEventListener

于 2013-02-27T21:30:01.397 に答える
0

このようにしてみてください

document.onkeydown = function test(ev) {
    var key = String.fromCharCode(ev.keyCode);
    if (key === "A") {
        alert("Hello!");
    }
}
于 2013-02-27T21:37:27.713 に答える