一. 我们也可以用客户端代码使浏览器不再缓存Web页面:
<html >
<head >
<meta http-equiv= "Expires " CONTENT= "0 " >
<meta http-equiv= "Cache-Control " CONTENT= "no-cache " >
<meta http-equiv= "Pragma " CONTENT= "no-cache " >
</head >
如果使用上面的方法强制浏览器不再缓存Web页面,必须注意以下几点:
只有在使用安全连接时“Pragma: no-cache”才防止浏览器缓存页面。对于不受安全保护的页面,“Pragma: no-cache”
被视为与“Expires: -1”相同,此时浏览器仍旧缓存页面,但把页面标记为立即过期。
在IE 4或5中,“Cache-Control”META HTTP-EQUIV标记将被忽略,不起作用。
在实际应用中我们可以加上所有这些代码。然而,由于这种方法不能适用于所有的浏览器,所以是不推荐使用的。但
如果是在Intranet环境下,管理员可以控制用户使用哪种浏览器,我想还是有人会使用这种方法。
二、其他方法
接下来我们要讨论的方法以后退按钮本身为中心,而不是浏览器缓存。这儿有一篇文章Rewiring the Back Button很
值得参考。不过我注意到,如果使用这种方法,虽然用户点击一下后退按钮时他不会看到以前输入数据的页面,但只要点
击两次就可以,这可不是我们希望的效果,因为很多时候,固执的用户总是能够找到绕过预防措施的办法。
另外一种禁用后退按钮的办法是用客户端JavaScript打开一个没有工具条的窗口,这使得用户很难返回前一页面,但
不是不可能。一种更安全但相当恼人的方法是,当表单提交时打开一个新的窗口,与此同时关闭表单所在的窗口。但我觉
得这种方法不值得认真考虑,因为我们总不能让用户每提交一个表单就打开一个新窗口。
那么,在那个我们不想让用户返回的页面是否也可以加入JavaScript代码呢?在这个页面中加入的JavaScript代码可
用来产生点击前进按钮的效果,这样也就抵消了用户点击后退按钮所产生的动作。用于实现该功能的JavaScript代码如下
所示:
<script language= "JavaScript " >
<!--
javascript:window.history.forward(1);
//-- >
</script >
同样地,这种方法虽然有效,但距离“最好的方法”还差得很远。后来我又看到有人建议用location.replace从一个
页面转到另一个页面。这种方法的原理是,用新页面的URL替换当前的历史纪录,这样浏览历史记录中就只有一个页面,后
退按钮永远不会变为可用。我想这可能正是许多人所寻求的方法,但这种方法仍旧不是任何情况下的最好方法。使用这种
方法的实例如下所示:
<A HREF= "PageName.htm " onclick= "javascript:location.replace(this.href);
event.returnValue=false; " >
禁止后退到本页面的链接 </A >
禁止后退到本页面的链接!
这种方法的缺点在于:简单地运用Response.Redirect将不再有效,这是因为每次用户从一个页面转到另一个页面,
我们都必须用客户端代码清除location.history。另外还要注意,这种方法清除的是最后一个访问历史记录,而不是全部
的访问记录。
点击上面的链接,你将打开一个简单的HTML页面。再点击后退按钮,你可以看到这时打开的不是本页面,而是本页面
之前的页面!(当然,你必须在浏览器中启用了客户端JavaScript代码。)
经过一番仔细的寻寻觅觅之后,我发现仍旧无法找出真正能够完全禁用浏览器后退按钮的办法。所有这里介绍的方法
都能够在不同程度上、以不同的方式禁止用户返回前一页面,但它们都有各自的局限。由于不存在能够完全禁用后退按钮
的方法,所以最好的方案应该是:混合运用客户端脚本和服务器端脚本。
---------------------------------------------------------------
"后退",不过不管哪个键,你都可以参见以下的方法实现:
用js,代码如下 <body onkeydown= "if(event.keyCode==8)event.returnValue=false " >上面的8为backspace的键码
你可以用下面的方法获得所需键码(键码显示在状态栏中)
<body onkeydown= "window.status=event.keyCode " >
分享到:
相关推荐
在使用Internet Explorer 8(以下简称IE8)时,用户可能会遇到一个问题,即浏览器的后退键突然失效,无法像往常一样浏览历史记录返回到上一个页面。这可能是由于浏览器的安全设置或者某些脚本设置导致的。为了解决这...
以下是一个示例代码,它定义了一个`banBackSpace`函数用于处理键盘事件,以禁止在密码或文本框输入以外的情况下,用户按Backspace键后退。这种方法能够不影响密码、单行文本框和多行文本框的回退操作。 ```...
当用户点击前进或后退按钮时,浏览器会触发这个事件,我们可以在事件处理函数中根据新的`hash`值加载相应的数据,从而实现无刷新的页面导航。 以下是一个简单的实现步骤: 1. 监听`hashchange`事件: 使用...
在JavaScript编程中,有时我们可能需要禁用浏览器的默认行为,比如禁制用户按下后退键(Backspace)的功能。这通常在特定场景下进行,比如防止用户在输入表单时误触后退键导致数据丢失。下面我们将详细讨论如何通过...
2. **浏览器按钮失效**:某些情况下,前进、后退、刷新、停止等IE浏览器上的功能按钮可能无法正常使用。此软件通过识别并修复相关设置,使这些按钮恢复正常功能。 3. **注册表问题**:注册表是Windows系统中存储...
在JavaWeb开发中,用户可能会使用浏览器的后退键(Backspace)来返回之前的页面,但这在某些场景下可能不希望发生,例如在用户进行重要操作或者数据提交之后。为了解决这一问题,开发者可以采取措施来阻止Backspace...
【标题】"IE9 鼠标手势"指的是在Internet Explorer 9浏览器中实现的一种增强用户交互的功能,它使得用户可以通过特定的鼠标动作执行一系列预设的操作,类似于一些第三方浏览器提供的鼠标手势功能。这种功能提高了...
"ie句柄"是易语言中用于操作Internet Explorer浏览器的一个重要概念,它是浏览器窗口的一个标识,通过这个句柄,我们可以对IE进行各种控制,比如获取网页内容、模拟用户操作等。 在易语言中,获取IE句柄通常是通过...
3. **按钮切换**:在全屏切换的Banner中,为了方便用户控制轮播的进程,通常会提供前进和后退的按钮。这些按钮可以是图标形式,也可以是文字,比如"上一张"和"下一张"。用户点击按钮,Banner图片就会按照预设顺序...
3. 前进后退问题:Ajax请求不会改变浏览器历史记录,可能导致前进后退功能失效。 4. 用户体验问题:若网络连接不稳定,可能造成页面加载不完整。 总结,Ajax技术是现代Web开发中的重要工具,通过它可以构建更加交互...
在Web开发中,有时我们需要避免用户在特定情况下误操作导致页面回退,特别是在表单填写时,用户可能会在文本框失去焦点后按下退格键,从而意外地使浏览器后退到上一个页面。针对这个问题,我们可以编写JavaScript...
2. **导航问题**:Ajax更新的内容不会被浏览器的历史记录跟踪,导致前进和后退功能失效。 3. **搜索引擎友好性**:搜索引擎爬虫主要依赖静态HTML,无法理解通过JavaScript动态加载的内容,可能影响SEO。 4. **开发...
时有一个奇怪的问题:如果光标进入只读文本框,然后按下Backspace键,就会跳转到上一个页面,效果就像点击了浏览器的后退按钮返回前一个页面一样,而在火狐和google下没有这样的问题出现,为了解决这个问题,写了一...
在Web开发中,有时出于数据完整性和用户体验的考虑,我们需要对用户的某些操作进行限制。例如,有些特定场景下,我们可能不希望用户使用浏览器的后退键或退格键(Backspace)来删除已经填写的内容。通常,这类需求...
ENTER键可以让光标移到下一个输入框 (event.keyCode==13)event.keyCode=9"> 文本框的默认值 (this.defaultValue)"> title换行 obj.title = "123
sdfs " 获得时间所代表的微秒 var n1 = new Date("2004-...
JavaScript中的`document.referrer`属性是用来获取当前页面的来源URL,即用户是从哪个页面跳转过来的。这个属性在Web开发中常用于流量统计、页面分析等场景,以了解用户的浏览路径。然而,`document.referrer`并非...
在IE5和6中,XMLHttpRequest首次被引入,但其他浏览器也有支持。 3. **数据交换**:数据通常以XML或JSON格式发送到服务器。XML是一种结构化的数据格式,适合复杂的数据交换,而JSON更为简洁,易于解析,现在更常用于...
4. **页面历史和前进/后退功能**:默认情况下,使用Ajax加载的内容不会改变浏览器的URL,导致前进/后退按钮失效,需要额外处理。 **Ajax的进阶应用** 1. **jQuery和库的支持**:jQuery等JavaScript库提供了更简洁...
2. 页面刷新导致的导航问题,如前进和后退功能可能失效。 3. 隐式异步可能导致用户困惑,不清楚何时完成操作。 **Ajax的开发策略:** 1. **模块化**:将Ajax请求封装成独立的函数或模块,便于复用和维护。 2. **...
在Web开发中,有时出于用户体验或安全考虑,开发者可能需要限制用户的一些默认行为,比如禁止使用鼠标右键、快捷键等。本文将详细介绍如何通过JavaScript代码实现屏蔽鼠标右键、Ctrl+n、Shift+F10、F5刷新、退格键等...