最近的项目中,收到客户的需求,要求浏览器禁止后退,搜索了一下,发现在Firefox上的实现需要特别注意,firefox的缓存机制使的通过后退按钮到达的页面不会自动执行默认的JavaScript.
基本思路如下: 客户从页面B到达页面C, 在页面C按回退键回退到页面B时,页面B上的Javascript使浏览器自动前进。
以下是实现代码:
a.html
<html>
<body>
<h1>A Heading</h1>
<p>Webpage A</p>
<a href="b.html">Link to B</a>
</body>
</html>
b.html
<html>
<head>
<script type="text/javascript">
function noBack() {
window.history.forward();
setTimeout("noBack()", 500);
}
noBack();
window.οnlοad=noBack;
window.οnpageshοw=function(evt) {
if (evt.persisted) noBack();
}
window.οnunlοad=function() {
void(0);
}
</script>
</head>
<body>
<h1>B Heading</h1>
<p>Webpage B</p>
<a href="c.html">Link to C</a>
</body>
</html>
c.html
<html>
<body>
<h1>C Heading</h1>
<p>Webpage C</p>
<a href="a.html">Link to A</a>
</body>
</html>