したがって、次のコードがあります。これは、キー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では期待どおりに動作するようです。