关于刷新事件的捕获,请大家多多关照。

javabean 2002-06-20 03:00:37
由于处理的特殊性,由多个frame组成的页面在用户按浏览器的刷新按钮或F5键进行页面的刷新时页面出现混乱。原因是由于部分参数在刷新时丢失。现在的问题是,如何能够在页面中,通过javascript语句来捕获对刷新事件的请求(按刷新按钮或F5键)?如果可以有效的捕获,则可以在捕获该消息后进行相应的处理,从而达到目的。
请各位帮帮忙,想想刻有什么方法来截获对按刷新按钮或F5键的事件。小弟深表谢意!
...全文
467 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
javabean 2002-08-16
  • 打赏
  • 举报
回复
多谢各位的关注。
xg_delayth 2002-06-21
  • 打赏
  • 举报
回复
to net_lover(孟子E章) :好象页面还是刷新了?
zz315 2002-06-21
  • 打赏
  • 举报
回复
呵呵,只有这样了:<body onbeforeunload="location=location">,哪儿都去不了了。
wasy 2002-06-21
  • 打赏
  • 举报
回复
刷新按钮应该没有办法禁止掉吧
ctrl+r、右健、F5倒是可以的

我看你应该换一种思路来解决你的问题
javabean 2002-06-21
  • 打赏
  • 举报
回复
多谢各位了。
各位所讲的我都试过了,在大多数的情况下各位的方法都是没有问题。不过针对我们的具体情况,好像还是不太理想。

我下面再详细叙述一下问题,如果方便,还请各位不吝赐教!

我们的首页面main.htm如下:
====================================================================
<TITLE>CLUSTERPRO® Web Manager</TITLE>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=euc-jp">
<style type="text/css">
</style>
<SCRIPT Language="JavaScript">
<!--
if( (top) != self )
{
top.location = location;
}

var WH=600;
var WW=800;

WH=screen.availHeight;
WW=screen.availWidth;

if (WH > 600) WH=600;
if (WW > 800) WW=800;

// the following are var list.

//-->
</script>
</HEAD>
<FRAMESET ROWS=88,*,20% FRAMEBORDER=1 FRAMESPACING=1>
<FRAME SRC="1.htm" NAME="FRAME0" scrolling="no" NORESIZE>
<FRAME SRC="2.htm" NAME="FRAME12" scrolling="auto">
<FRAME SRC="3.htm" NAME="FRAME3" scrolling="auto">
</FRAMESET>
</HTML>
====================================================================

上述页面是我们网站的首页面,但只是一个框架文件。当用户在请求该页面后,将由各框架中指定的页面予以展开。由于我们的处理比较特别,框架之间通过全局变量传递参数,致使当用户在按浏览器的刷新按钮或F5时,页面将出现一定程度的混乱。分析原因是在用户执行该操作时,浏览器会请求当前处于最前台显示的页面,因此一旦当前显示的页面中需有参数时,在该页面将出现错误。我现在的目的是,如何在用户执行此操作时,强制请求首页,即main.htm,也即在main.htm中设置监听,一旦有这样的刷新(按浏览器的刷新按钮或F5)事件,则执行语句:
top.location = location;
这样的话,就可以保证页面是从首页开始请求,从而避免混乱的发生。

Muzhu 2002-06-21
  • 打赏
  • 举报
回复
to net_lover(孟子E章) :

并且我还可以CTRL+R呀!
Muzhu 2002-06-21
  • 打赏
  • 举报
回复
to net_lover(孟子E章) :

并且我还可以CTRL+F呀!
javabean 2002-06-21
  • 打赏
  • 举报
回复
再没有更好的解决办法了吗?
zz315 2002-06-20
  • 打赏
  • 举报
回复
两个办法:一个是onunload/onbeforeunload,这样是只要离开当前页就响应,当然是包括刷新(可以看做先离开再打开吧),不过这样有点儿“滥杀无辜”。另一个方法就象楼上那样,判断所有可能会刷新页面的事件,但是有一点:IE工具栏里的事件你就无能为力了。

用什么看你具体情况了。
孟子E章 2002-06-20
  • 打赏
  • 举报
回复
event.returnValue=false
seabell 2002-06-20
  • 打赏
  • 举报
回复
<script>
document.onkeydown=mytest;
function mytest()
{
if(event.keyCode==116){
alert("f5");
window.event.keyCode=0;
return false;
}
}
</script>
孟子E章 2002-06-20
  • 打赏
  • 举报
回复
<script>
function test()
{
if(event.keyCode == 116)
{
alert("你按了F5") //处理程序
event.returnedValue=false

}
}
</script>
<body onkeydown="test()">

87,996

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧