プロが教える店舗&オフィスのセキュリティ対策術

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

A 回答 (2件)

> このプログラムだと一回目はうまくいくのですが二回目になるとsキーを押すだけで実行されてしまいます。



関数 pressEnter() で、キーの処理をした後に、ハンドラを keyDown() に戻す、と
いうのでは駄目ですか?

function pressEnter()
{
 keynum2=event.keyCode;
 if(keynum2==83)//この番号がキーに対応してる(sキー)
 {
  document.write("キーコード");
  document.onkeydown=keyDown;  // ※ これ
 }
}

この回答への補足

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

補足日時:2002/05/14 17:50
    • good
    • 0

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;}
}


これでいいんじゃないですか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!