0

したがって、次のコードがあります。これは、キー68(dキー)が押されている限り、25ミリ秒ごとにdiv「test」に「true」を追加する必要があります。

<html>
<body>
<div id="test"></div>
<script type="text/javascript">
var key=false;
var keyDown=function(e) {
 if (e.keyCode==68) {
  key=true;
 }
}
var keyUp=function(e) {
 if (e.keyCode==68) {
  key=false;
 }
}
document.onkeydown=keyDown;
document.onkeyup=keyUp;
var run=function() {
 document.getElementById('test').appendChild(document.createTextNode(key+'\n'));
 t = setTimeout('run()', 25);
}
var t = setTimeout('run()', 25);
</script>
</body>
</html>

コードを保存し、ブラウザにロードして、dキーを押したままにします。私が気が狂っていない場合は、dキーが解放されていなくても、「false」が追加されることがあります。(私はこれをLinuxとVistaのFFとChromeで試しました)。誰かがその理由を知っているか、回避策がありますか?

編集:OSXで実行されているFFでは期待どおりに動作するようです。

4

1 に答える 1

0

IE7で試してみました。「e.keyCode」を「event.keyCode」に変更すると、期待どおりに機能しました。

ここに貼り付けたコードを実際に試しましたか、それともバグが含まれている可能性のある他のコードを使用していますか?

編集

これをChromeで実行しました。繰り返しますが、期待どおりに動作します。

通常のキーボードの使用には影響しないが、このテストで明らかになる、干渉やバッテリーの弱さの影響を受けやすいワイヤレス キーボードを使用していますか?

于 2010-04-01T20:22:07.713 に答える