• ベストアンサー

キーコードなどで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("キーコード"); } }

質問者が選んだベストアンサー

  • ベストアンサー
  • shorn
  • ベストアンサー率41% (12/29)
回答No.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)
回答No.1

> このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。 関数 pressEnter() で、キーの処理をした後に、ハンドラを keyDown() に戻す、と いうのでは駄目ですか? function pressEnter() {  keynum2=event.keyCode;  if(keynum2==83)//この番号がキーに対応してる(sキー)  {   document.write("キーコード");   document.onkeydown=keyDown;  // ※ これ  } }

shu1ngsk
質問者

補足

ありがとうございます できました。 Altキーを押したままじゃないとじっこうできないようにはできませんか?