ブラウザの戻るを使えなくする


windowのunloadイベントを利用すると他のページへ遷移するのを禁止できる。
やり方は以下のソースを記述するだけ


window.onunload =
 function(){
	location.replace(document.location);
}


ただ、この記述だけだと次ページへの遷移すらできなくなるので少し改良してみる。


page1.html(遷移元ページ)

<html>
<body>

	<a href="page2.html" style="color:black">戻れないぺーじへ</a>

<body>
</html>

page2.html(ブラウザの戻るが効かないページ)

<html>
<script>
var backflg
//windowのunload処理
window.onunload =
 function(){
	if (backflg != 1){
		location.replace(document.location);
	}
};  
//戻るリンク押下
function goback(){
	backflg = 1;
	location.href="page1.html"
}
</script>

<body>
	<input type='text' >
	<a href="#" style="color:black" onclick="goback()">戻る</a>
<body>
</html>


ただし、次の欠点がある。


1.onunloadイベントを使っているので「お気に入り」やアドレスバーにURLを打って遷移しようとした場合も遷移が防がれる。


2.location.replaceで自ページに遷移させているので実際はページがリロードされている。



しかし、ネットサーフィンをしててこんなページがあったら嫌だな。


参考にしたサイト

http://fnya.cocolog-nifty.com/blog/2006/12/post_8be2.html