• 締切済み

「Alt + ←」の機能(前のページに戻る)を抑止したい

◇環境 ブラウザ:Microsoft Internet Explorer 6.0 SP2 上記の環境で、「Alt + ←」の機能(前のページに戻る)をJavaScriptで抑止したいと考えています。サンプルとして、 window.document.onkeydown = altandArrowDisable(){  if(event.altKey && event.keyCode == 37) {   event.keyCode = 0;   return false;  }else{   return true;  } } と書いてみましたが機能(前のページに戻る)を抑止できません。 alert()を付加すると機能抑止できますが、それ以外で実現可能なのでしょうか? 宜しくお願い致します。

みんなの回答

  • SAYKA
  • ベストアンサー率34% (944/2776)
回答No.1

これは確かに動かないだろうね。(理論的に の話) まず onkeydown がどういう時に呼ばれるのか って事。 そして event.* がどういう時にtrueなのか って事。 判らないから質問してると思うので理由だけ書いとくね downって押されたら検知されるよね? その時 event.* ってdownを呼ぶ要因になった物がセットされてるわけだよね? altで呼ばれたらalt、左で呼ばれたら左しか検知しない筈だけど…(検知したkeyをどこかに吐いて確認したら判ると思う) 2つのキーを判別するなら「今押されているのか」というのを別にさぐる必要があるんじゃないかな。 或いはkeyupも検知して「押されたflag(自作)」をクリアして(以下略

k_tanpin
質問者

お礼

event.keyCode = 0; を削除したら、機能抑止できました。 有難うございました。

k_tanpin
質問者

補足

ご回答ありがとうございます。 if文でイベントを拾う事は出来ております。 event.altKeyやevent.ctrlKeyは、押下されていれば必ずtrueが返ってきます。 event.KeyCodeは、onKeydowm時に押されているボタンがコードで返ってきます。 1.altキー押下   event.altKey → true   event.keyCode → 18 2.altキーを押下したまま←キーを押下   event.altKey → true   event.keyCode → 37 質問したかった事は、機能抑止する場合イベントを拾ってfalseを返却すれば良いのですが、上記の場合は出来ないので何か良い方法をご存知ありませんか?という事です。 説明が下手で申し訳ありません。   

関連するQ&A