- ベストアンサー
キーコードなどでAlt+○を認識してイベントを発生させるには?
キーコードなどでAlt+○を認識してイベントを発生させるにはどうしたらよいのでしょうか?ひとつのキーでならできたのですが複数のキーを組み合わせることができませんでした。参考までにうまくいかなかったプログラムの関数部分を記述しておきます。このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。 document.onkeydown=keyDown; function keyDown() { keynum1=event.keyCode; if(keynum1==18)//この番号がキーに対応してる(Altキー) { document.onkeydown=pressEnter; } } function pressEnter() { keynum2=event.keyCode; if(keynum2==83)//この番号がキーに対応してる(sキー) { document.write("キーコード"); } }
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
document.onkeydown=keyDown; document.onkeyup=keyUp; var CHK=new Array(); CHK[0]=0; CHK[1]=0; function keyDown(){ if(event.keyCode==18){CHK[0]=1;} if(event.keyCode==83){CHK[1]=1;} if(CHK[1]==1 && CHK[0]==1){ document.write("キーコード"); } } function keyUp(){ if(event.keyCode==18){CHK[0]=0;} if(event.keyCode==83){CHK[1]=0;} } これでいいんじゃないですか?
その他の回答 (1)
- a-kuma
- ベストアンサー率50% (1122/2211)
> このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。 関数 pressEnter() で、キーの処理をした後に、ハンドラを keyDown() に戻す、と いうのでは駄目ですか? function pressEnter() { keynum2=event.keyCode; if(keynum2==83)//この番号がキーに対応してる(sキー) { document.write("キーコード"); document.onkeydown=keyDown; // ※ これ } }
補足
ありがとうございます できました。 Altキーを押したままじゃないとじっこうできないようにはできませんか?