• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Tabキーのキャンセル)

Tabキーのキャンセル

このQ&Aのポイント
  • IEでは上手く動いてますが、Netscape6以降でTabのキャンセルは指定できるのでしょうか?
  • とりあえず、以下のコードを試してみてください。
  • 必要なイベント処理を追加し、Tabキーの処理をキャンセルすることができます。

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

  • ベストアンサー
  • mrumesuke
  • ベストアンサー率45% (254/557)
回答No.1

後述のような感じにしたら動きました。(N7で確認) なぜKusukiさんのコードで期待通り動かないのかは、Netscapeのリファレンスを調べてもよく分かりませんでした。 # JavaScript 1.3 Client-Side Guide (Chapter 10 Handling Events) http://devedge.netscape.com/library/manuals/2000/javascript/1.3/guide/evnt.html # JavaScript 1.3 Client-Side Reference (Chapter 3 Event Handlers) http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/handlers.html ---------------------------------------------- function document_onLoad() {  // IE 4以降の場合  ... snip ...  // N6,7の場合  if (isN6)  {   window.onkeypress = document_onKeyPressN6; // KerPress  } } /// tabキーが入力されたときのイベント処理(IE用) ... snip ... /// tabキーが入力されたときのイベント処理(NN用) function document_onKeyPressN6(evt) {  var keyCode = evt.which;  if (keyCode == 0) // KeyPressのときはなぜか0  {   // 本来のtabの処理をキャンセルする。 // evt.returnValue = false; // なぜか効かない // evt.cancelBubble = true; // なぜか効かない   return false; // 必要  }  return true; // なくてもOK } ---------------------------------------------- tabだけでなくファンクションキー等も無効(KeyCode==0)になってしまいます。何らかの都合で厳密にtabだけとするには、KeyDownの方で小細工が必要かも知れません。

Kusuki
質問者

お礼

mrumesukeさん、ありがとうございます!! 「TABキーはKeyDow」と思い込んでしまっていて、 KeyPressにまで気が回りませんでした。 それにしても何故あの2つの指定は効かないのかしら…。 関数の方に組み込むにあたって、 F1キーにはNetScapeのヘルプが割付けられていますので、 KeyDownでフラグを持たせて判定するようにしました。 リファレンス…が、頑張って辞書と睨めっこしながら勉強してみます…。 本当にありがとうございました!!