对禁用浏览器的全面回顾

浏览器的后退按钮使我们能够回到以前访问过的页面,这无疑是非常有用的,但有时我们不得不关闭这个函数,
防止用户破坏预定的页面访问顺序。本文介绍了在网络上可以找到的各种禁用浏览器后退按钮,并分析了它们各自的优缺点。
利用时机。
首先,概述
有很多人问如何禁用浏览器的后退按钮或者,如何防止用户单击后退按钮返回到过去。
读这页在ASP论坛中,这是最被问到的问题之一。不幸的是,答案很简单:我们不能禁用浏览器的背面。
u3002按钮
起初我觉得难以置信,有人想禁用浏览器的后退按钮。
按钮,我也会松一口气(您要禁用的唯一后退按钮,而不是浏览器的前进按钮)。因为默认情况下,用户可以在提交表单后通过表单。
后退按钮返回表单页面(而不是使用编辑按钮!)然后再次编辑并提交表单以向数据库插入一个新记录。
我想看看。
所以我决定想办法避免这种情况。我访问了许多网站,并提到了这些网站的各种实现。
经常访问asp编程网站,这部分你可能已经看过了。本文的任务是向大家介绍各种可能的方法,然后找出答案。
最佳方式!
两。禁止缓存
在我发现的许多解决方案中,有一个建议禁止页面缓存:
<
响应=缓冲区=真
response.expiresabsolute =现在()- 1
响应。过期= 0
response.cachecontrol = 不缓存
%>
这个方法很有效!它迫使浏览器重新访问服务器来下载页面,而不是从缓存中读取页面。
任务是创建一个会话级变量,该变量决定用户是否仍然可以看到不适合通过后退按钮访问的页面。因为刘
浏览器将不再缓存此页。当用户单击后退按钮时,浏览器将再次下载该页,因此程序可以检查会话变量并查看它是否为。
应允许用户打开此页。
例如,假设我们有以下表单:
<
响应=缓冲区=真
response.expiresabsolute =现在()- 1
响应。过期= 0
response.cachecontrol = 不缓存
如果Len(Session(firsttimetopage ))> 0
单个;用户已经访问当前页面,现在又返回到访问。
单个;清除会话变量并将用户重定向到登录页面。
会议(firsttimetopage )=
响应。
反应结束
最后如果
单一的;如果程序在这里运行,它显示用户可以查看当前页面。
单窗体;下面的窗体开始创建窗体。
%>



我们检查用户是否有使用会话变量firsttimetopage第一次到当前页面的访问。如果这不是第一次(会话
(firsttimetopage )包含一个特定值),所以我们清楚的会话变量的值,并将用户重定向到主页。因此,作为一种形式
在提交时(此时sompepage.asp打开),我们已经给firsttimetopage值。就是说,在SomePage.asp我们需要添加以下
代码:
会议(firsttimetopage )=没有
这样,如果用户打开了somepage.asp,如果后面的按钮被点击时,浏览器会rerequest服务器下载页面,服务器将检查会议
(firsttimetopage )包含一个值,所以它清除会话(firsttimetopage )并将用户重定向到其他页。当然,所有
所有这一切都要求用户启用cookie,否则会话变量将无效。有关此问题的更多说明,请参阅会话变量。
要工作,Web访问者必须启用cookie)
此外,我们还可以使用客户端代码使浏览器不再缓存Web页面:






如果使用上述方法强制浏览器停止缓存Web页面,则必须注意以下几点:
杂注:无缓存只能阻止浏览器缓存页面只有当安全连接使用。页无保障、杂注:无缓存
它被认为与到期相同:1,当浏览器仍然缓存页面时,页面标记为立即过期。
在IE 4或5,缓存controlmeta HTTP-EQUIV标记将被忽略和不工作。
在实际应用中,我们可以将所有的这些代码。然而,由于这种方法不适用于所有的浏览器,它不recommended.but
如果是在内部网环境中,管理员可以控制用户使用的浏览器,我想有人会使用这个方法。
三。其他的方法
我们要讨论的下一个方法是返回按钮本身为中心,而不是浏览器缓存。这里的一篇文章,重新返回按钮
值得注意的是,但是我注意到,如果使用这个方法,虽然用户单击后退按钮,但他不会看到以前用来输入数据的页面,但只看到要点。
打两次就可以了,这不是我们想要的效果,因为在很多情况下,顽固的用户总能找到预防措施。
另一种禁用后退按钮的方法是使用客户端Javascript打开一个没有工具栏的窗口,这使得用户很难返回到前一页。
这不是不可能的。一个更安全但更恼人的方法是在表单提交时打开一个新窗口,同时关闭窗体所在的窗口。
这个方法不值得考虑,因为我们不能让用户每次提交表单时都打开一个新窗口。
那么,是否有可能向我们不希望用户返回的页面添加Javascript代码呢添加到此页的Javascript代码是可用的。
它是用来产生点击向前按钮效果,抵消,后退按钮,用户点击行动。Javascript代码来实现这个功能如下
结果表明:

<!——
Javascript:window.history.forward(1);


用同样的方法,这种方法是有效的,但它是迄今为止最好的方式。然后我看到有人建议用location.replace从一
这个页面的原理是用新页面的URL替换当前的历史记录,这样历史记录中只有一个页面。
后退按钮永远不会被使用。我想这可能是很多人都在寻找的方法,但无论如何都不是最好的方法。
该方法的示例如下:
< a href =而.htmonclick=Javascript:location.replace(这个链接);
事件。值=假;>
不返回这个页面的链接
尝试以下链接:
没有链接回到这个页面!
这种方法的缺点是简单地使用响应,重定向将不再有效,因为每次用户从一个页面转移到另一个页面,
我们都要与客户代码清晰的location.history。它也注意到这种方法清除上次访问历史上重要的,不是它的全部。
访问记录。
点击上面的链接,你会打开一个简单的HTML页面。再次点击后退按钮,你可以看到这不是页面,而是这个页面。
前一页!(当然,您必须在浏览器中启用客户端Javascript代码)。
仔细搜索后,我还是发现很难找到真正的可以完全禁用browserbackbutton方式,这里介绍的方法
可以禁止用户以不同的方式和不同的方式返回到前一页,但它们也有自己的局限性。
做到这一点的最好方法是混合客户端脚本和服务器端脚本。