履歴を残さない
ブラウザの「戻る」機能を無効にしたい,という話が時々出る.基本的に無理だと思うのだが,JavaScriptのlocation.replaceを使うと履歴を残さないことはできる.次の画面に遷移するのではなく,今の画面を次の画面と入れ替えるわけだ.以下のhtmlは1st.htmlと2nd.htmlの間を往復するものだが,履歴には何も残らない.
<html> <head> <title>1st</title> </head> <body> <a href="javascript:location.replace('2nd.html')">2nd</a> </body> </html>
<html> <head> <title>2nd</title> </head> <body> <a href="javascript:location.replace('1st.html')">1st</a> </body> </html>
「今表示しているページを新しいページと入れ替える」ので,それまで遷移してきた履歴は残ったままである.上の例で言うと1st.htmlと2nd.html間の履歴は残らないが,それ以前に遷移してきた履歴はブラウザに残る.例えば,Google→1st.html→2nd.htmlと遷移した場合,2nd.htmlから1st.htmlには戻れないが,Googleに戻ることは可能である.
自分のPCのローカルディスクから実行するとWindowsXP+SP2+IEだと警告が出る.
セキュリティ保護のため,コンピュータにアクセスできるアクティブコンテンツは表示されないよう,Internet Explorerで制限されています.
制限を外すか,サーバに持っていくかすればこの警告は出なくなる.