JS清除网页历史记录,屏蔽后退按钮

最简洁的方法是:

<script language="JavaScript">
    <!-- javascript:window.history.forward(1); //-->
</script>

原理就是利用JS产生一个“前进”的动作,以抵消后退功能,可以不需要考虑用户连点两次或多次“后退”的情况。不过如果用户端禁用了JavaScript就没有作用了,当然一般也没人禁用的。

另外一种方法就是通过HTML头部Meta设置:

<html>
    <head>
        <meta http-equiv="Expires" CONTENT="0">
        <meta http-equiv="Cache-Control" CONTENT="no-cache">
        <meta http-equiv="Pragma" CONTENT="no-cache">
    </head>
    <body></body>
</html>

如果使用上面的方法强制浏览器不再缓存Web页面,必须注意以下几点:

  • 只有在使用安全连接时“Pragma: no-cache”才防止浏览器缓存页面。对于不受安全保护的页面,“Pragma: no-cache” 被视为与“Expires: -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期。
  • 在IE 4或5中,“Cache-Control”META HTTP-EQUIV标记将被忽略,不起作用。 在实际应用中我们可以加上所有这些代码。然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用的。

还有一种方法如下所示:

<a href="http://java-zone.org" onclick="javascript:location.replace(this.href); event.returnValue=false;">禁止后退到本页面的链接</a>

这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后退按钮永远不会变为可用。

这种方法的缺点在于:每次用户从一个页面转到另一个页面, 我们都必须用客户端代码清除location.history(前提是在浏览器中必须启用了客户端JavaScript代码)。

另外还要注意,这种方法清除的是最后一个访问历史记录,而不是全部的访问记录。

标签: JS使用技巧

添加新评论