Top > Blog > Programming

ブラウザの戻るボタンを無効にする

Web アプリケーションを作成していると、時にブラウザで履歴をさかのぼる機能をを無効にしなければならない時があります。
よく使われる方法としては、「サーバ側でページアクセス毎にユニークなトークンを発行して、ブラウザの戻るボタンで戻ってフォームを再送信した場合に、エラーを発生させる」といったものもあり、各種フレームワーク等で提供しているような機能は、このようなサーバサイド側での処理を作り込んだものが多いのではないかと思います。

しかしいま携わっているプロジェクトでは、「前の画面さえ表示したくない」…つまり戻るボタン(BackSpace キーや、 Alt + ← 、マウスの割り当てボタンなど)そのものが効いていないか、効いていないように見える、という事をしなければならず、最初は愚直にキーイベントを取得したり等をしていたのですが…、こんな方法がありました↓

(戻りたくない画面に)

<script>
history.forward();
</script>

を記述しておく

この方法を見つけた時は、チームの人と力無く笑ってしまいました…久々に脱力系の解決策(^^;

全2コメント

  1. 管理人 より:

    この記事を書いてからはだいぶ時間が経ってまして、当時はFirefoxも1.0が出る直前でした。
    最近の記事ですと、↓のあたりが参考になりそうです。

    http://kikinote.seesaa.net/article/157491622.html
    http://d.hatena.ne.jp/koumiya/20080916/1221580149

  2. […] いやいや。そうですか、Backボタンを押すと強制的にログアウトですか。100歩譲ってもこれくらいの対策はできないんでしょうか。いやタイムアウトするのはいいんです。大事な情報です […]

コメントの投稿