[JavaScript]

1.Firefoxで、
2.バックスペースを押した際のページを戻るアクションを抑制しつつ、
3.バックスペースのキーコードを取得する方法を教えてください。


keydownに、preventDefault()を実行するEventListenerを追加すると、キーコードが取得できませんでした・・・。

回答の条件
  • 1人2回まで
  • 登録:2008/07/15 11:13:52
  • 終了:2008/07/22 11:15:02

回答(2件)

id:kn1967 No.1

kn1967回答回数2915ベストアンサー獲得回数3012008/07/15 14:09:40

ポイント35pt

カーソルキーやバックスペースキーなどは全てゼロを返してきますので

キーコードではなくキャラクタコードで代用してみてください。

<html>
<head>
  <script language="JavaScript">
  <!--
    document.onkeypress = KeyPress;
    function KeyPress(x) {
      alert((x.keyCode!=0)?x.keyCode:x.charCode);
    }
  //-->
  </script>
</head>
<body>
  <h1>キーを押すとコードが表示されます</h1>
</body>
</html>
id:ingot07

>キーコードではなくキャラクタコードで代用してみてください。

申し訳ないですが、既知ですorz


上記のソースだと、バックスペースでalertした後、alertのOKボタンを押すと、ページが戻ってしまいます。

バックスペース時に、ページを戻さないようにする方法を教えてください。

2008/07/15 15:39:25
id:gya0521 No.2

gya0521回答回数13ベストアンサー獲得回数02008/07/15 19:59:37

ポイント35pt
document.onkeypress = KeyPress;
function KeyPress(x) {
  alert((x.keyCode!=0)?x.keyCode:x.charCode);
  if (x.keyCode == 8) {
    return false;
  }
}

のように return false; を入れて、デフォルトのキー操作時の動作を抑制するような処理をしてやれば

良いのではないでしょうか。

id:ingot07

も、もう三十分早く言っていてくれていれば…

何はともあれ、ありがとうございます。

2008/07/15 20:01:38
  • id:kn1967
    BSの無効化は
    alertの行を
    return !((x.keyCode!=0)?x.keyCode:x.charCode == 8);
    に変えてみてください。
  • id:tukihatu

    普通にreturn false;でいけないですか?
  • id:ingot07
    kn1967さんの書き方を理解するために、時間がかかりましたが、理解できました。

    tukihatuさんの言うとおり、普通にreturn falseでいけますね。


    ありがとうございました。
  • id:ingot07
    tukihatuさんにも、ポイントを差し上げたいので、何でも構いませんから適当に書き込んで下さいな。
  • id:gya0521
    コメントに正解が書いてあったのですねー。
    失礼致しました。
    今気付きました。。。
  • id:kn1967
    新たに投稿するほどのものでもないと思ったので
    コメント欄に返答を書かせていただきました。
    gya0521 さんにはご迷惑をおかけしたようで済みません。

    >ポイントを差し上げたい
    ポイントはidに対して直接送信も出来ますよ。ただし手数料は5%。
    https://www.hatena.ne.jp/sendpoint
    50ポイント以上の予定ならば
    書き込みしてもらって開くほうが手数料としては割安ですけど・・・。
  • id:ingot07
    ポイントの送信は、今まで利用したことがなかったので、妙な不安があったのです。

    本音を言うと、実は存在自体知らなかったわけですが。
  • id:ingot07
    手違いでkn1967さんにもポイント送信してしまいましたが、返送してもらうのもアレなので、ポイント送信法を教えてもらった情報料とでも思って受け取っておいて下さい。
  • id:kn1967
    2重に頂戴するのも気が引けるので返信させていただきました。
    # 全額というもアレなので、ちょっと頂戴しましたけどw
  • id:tukihatu
    あー、ごめんなさい…回答に書けばよかったですね。
    しかもコメント書きだと書いた履歴も残らないので、その後見るの忘れてました><
    ポイントありがとうございます!
    return false;ならググッて出てくるのでもっと変なところで突っかかってるのかと思ってコメントに書いた、という記憶があります…
  • id:ingot07
    >kn1967さん
    わざわざスミマセン。
    ポイントが戻ってきて驚きましたw

    >tukihatuさん
    いや、案外どうしようもない間抜けなところで引っ掛かるもんですね。
    ググり方を間違えてたんだと思います。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません