ブラウザの「戻る」を無効にすることは可能?

[上に] [前に] [次に]
M.Takii [E-Mail] 1999/08/13(金) 20:14:16
はじめまして、いつもお世話になっています。

かなり初歩的な質問かなと思うのですが……
諸処の事情で、ゲームブックのような、質問に答えることで物語?が分岐していくページを作っています。
この分岐を、ブラウザの「戻る」で逆走する事を防ぐことはできるのでしょうか?

ちょっとややこしいですが、「a01.html」というページから分岐で「b01.html」「b02.html」というページにそれぞれリンクで飛べる時、一度「b01.html」に進んだ人が「a01.html」にブラウザBACKで戻って「b02.html」を選び直す事ができなくなるようにすることは可能なのか、ということです。
はたしてこれはCGIやJavaScriptなどを利用して実現可能な事なのでしょうか?それとも不可能なのでしょうか?

とりあえず、フリーCGIなどを利用して、履歴などからの直リンクができないような手はとりました。
<meta http-equiv="Pragma" content="no-cache">をくっつけて、キャッシュに残らないようにもしてあります。

あまり堅苦しいものではないので、逆走を完全に防止する事を諦めればいい話なのですが、できるだけ一度スタート地点に戻ってやり直して欲しいな、と(^^;思うので……
もしよろしければ、ご教授願えないでしょうか。
どうぞよろしくお願いいたします。

ST 1999/08/13(金) 22:26:42
http://www.tohoho-web.com/js/location.htm
IE4,NN3以上なら,location.replace を使えば履歴には残りません。

M.Takii [E-Mail] 1999/08/14(土) 20:17:17
STさん、ご助言どうもありがとうございました。

実のところプログラミング知識も乏しく、HTMLタグ以外はあまり知らない(せいぜいCGIのHTML表示部を微妙に改造するぐらい)ので、今がんばってJavaScriptを勉強している所です。
とりあえず、<head>内に

<script language="JavaScript"><!--
window.location.replace(そのファイル自身のURL)
//-->
</script>

とくっつけてみたのですが、NC4.6でも相変わらず履歴には残っている模様……
大変申し訳ないのですが、もしよろしければどうやってlocation.replaceを使用すればいいのか教えていただけないでしょうか。
とはいえ、自分でも解決できるように、私ももう少し頑張って勉強します。(^^;
(JavaScriptって奥が深いですね……JS初心者だからそう思うのでしょうか?)

M.Takii [E-Mail] 1999/08/14(土) 20:20:49
……自分つっこみです。
今、ふと思ったのですが、要するに該当する表示部を別のHTMLファイルに書いて、location.replaceで呼び出せばいいという事なのでしょうか……
違うかな?とりあえず、今から試してみようかと思います。

ST 1999/08/14(土) 20:50:47
<A href="JavaScript:window.location.replace('***.html')">次へ</A>
取りあえずはこんな感じで使えます。ただし,JavaScriptOFFの場合,またreplaceに対応していない場合は使えませんので,ご注意を。

M.Takii 1999/08/14(土) 22:17:18
[[解決]]
教えていただきありがとうございました。何とか逆走不可の仕組みを作ることに成功しました。(たぶん…)

似たような手だてを自分でも考えていたのですが、onClickを利用したあまり優雅ではないしろものでした…(^^;
JS無効及び非対応の場合は、素直に諦めようと思います。

[上に] [前に] [次に]