- ベストアンサー
Backボタンが押されたら
JavaScriptでBackボタンが押されたら前のページに 戻るのではなくて前のページのURLへジャンプしたいと考えています。 Backボタンが押されたことをどうやって判定すればいいのでしょうか? よろしくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
Backボタンを押したかどうかをスクリプト側で把握できるようなイベントハンドラは、おそらくありません。 (そういった、ブラウザ自体の制御に関するイベントとして取得できるのは、ヘルプを呼んだことを示すイベントハンドラが在るくらいでしょうか) ですが、サイト内の遷移などで、バックボタンを押されては困る場合もあります。 そういうときは、location.replace('目的のページ') で、遷移されることをお奨めします。 【記載例】 <input type="button" onClick="location.replace('a.html');" value="replace"> location.replaceを使って遷移した場合、Backボタンに割り当てられるような履歴情報が残りません。 ただ、このままだと、サイト内をどれだけ移動しようとも、Backボタンが押されると、そのサイトに入る直前のサイトに飛んでしまいます。 ですので、この方法を使うときは、サイトに入った時点で、新規にウィンドウを開き、新しいウィンドウ上にサイトのコンテンツを表示するようにします。 新しいウィンドウを開いた後は、元の(他サイトからの遷移の履歴が残っているほうの)ウィンドウは、閉じてしまっても良いでしょう。
その他の回答 (2)
- furuichi9
- ベストアンサー率26% (80/303)
ブラウザの方ですか、IE自体ですと、戻るボタンを無効等のはできますが。 「ブラウザの戻るボタンのクリックなどのイベントを取りたい」と言うのは調べた事があるのですが、無理だったような気がします。2年も前の事ですが。 お役に立てず、申し訳ないです。
お礼
私が抱えている現象はNN4.7だけで発生していて 回避できないことがわかりました。 ありがとうございました。
- furuichi9
- ベストアンサー率26% (80/303)
履歴を一つ戻るって事ですか。 <A HREF="javascript:history.back()">戻るとか。</A> では駄目でしょうか?
補足
ご回答ありがとうございます。 説明不足ですみません。 戻るボタンは作るのではなくて ブラウザについている「戻る」ボタンです。 一応ボタンは用意しているんですけど ブラウザの左上の戻るを押したときにも ちゃんとURLへジャンプしたいので。
お礼
回答ありがとうございます。 Backボタンを使えなくしてしまうのはかなり強引な気がします。 戻ったときに「データがありません」のメッセージが出て 更新ボタンを教えてもらえばそのまま使えるので その方向で行きたいと思います。 ありがとうございました。