戻るボタンの実装方法
戻るボタンの実装方法
戻るボタンの実装方法は何がただしいのかということを悩みました。
Webでは一般的にどういう方法が正しいのでしょうか?
①HTTP Requestから"REQUEST_URI"を取得して、セッションに詰め込む
Rubyでやる場合にはApplicationControllerのbefore_filterで
このリクエストパラメーターをセッションにキュー配列を作って詰め込んで行き
戻るボタンではこの値を利用する。
↓
欠点
・自分のサイト以外にはもどれない。
・ドメインがまたがるサイトに戻ることが難しい
・flashなどの非同期通信に間違って戻ってしまう
・実装がメンドクサイ
②HTTP Requestから"HTTP_REFERER"を取得して、ここにリンクする
< input type=button alt="ほげほげ" onclick="location.href='#{request['HTTP_REFERER']}'" / >
かなりシンプルにかけるようになりました。
自分のサイト以外にはももどれますし
ドメインがまたがるサイトにも戻れます。
↓
欠点
・flashなどの非同期通信に間違って戻ってしまう
・たまにrequest['HTTP_REFERER']が取得できない
③JavaScriptのhistorybackを利用する
< input type=button alt='戻る' onclick='history.back();' / >
とっても簡単にかけて素敵な感じです。
↓
欠点
・Javascriptが使えないブラウザに対応しない
というわけで、現状③が一番よいなと思っていますが
ほんとのところ何かもっと素敵な方法はないのでしょうか?