FF浏览器中用JS只监听浏览器关闭,不监听刷新

酸辣瓜条 2013-10-29 02:52:43
我现在代码如下:但是在加载页面的时候StopThePage()就被调用了,不应该是关闭的时候才会调用吗?求解
window.onload = function () {
window.onkeydown = keyDown;//js获取按键keycode值

}
function keyDown(event){
var code = event.which;
//屏蔽 alt+ 方向键 ← //屏蔽 alt+ 方向键 →
if ((code.altkey) && ((code == 37) || (code == 39))) {
return false;
event.preventdefault();
}
//屏蔽f5
if (code == 116 || code == 8) {
code = 0;
return false;
event.preventdefault();
}
//屏蔽 ctrl+r
if ((code.ctrlkey) && (code == 82)) {
return false;
event.preventdefault();
}
//屏蔽 shift+f10
if ((code.shiftkey) && (code == 121)) {
return false;
event.preventdefault();
}
}

window.onbeforeunload = onbeforeunload_handler;
function onbeforeunload_handler() {
var a="<%=StopThePage()%>";
alert("关闭");
var warning = "请签退后离开本页面";
return warning;
}
...全文
108 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
未知数 2013-10-30
  • 打赏
  • 举报
回复
引用 10 楼 u011188249 的回复:
[quote=引用 8 楼 wzs_xyz 的回复:] [quote=引用 4 楼 u011188249 的回复:] [quote=引用 2 楼 zzgzzg00 的回复:] 你建一个div div里放上你的那段<%%>里的内容 display设为none 当执行beforunload时将这个div的display设为block试试
不是很明白你的意思,你是说在div中用一个事件来触发StopThePage()吗?而且这样做的意义在哪?我是新手,请多多包涵[/quote] 任何客户端调用服务端代码都必须通讯<%%>的方式不是调用服务端代码 先弄明白什么客户端,什么是服务端,客户端即浏览器,服务端即服务器,两者根本不是同一台电脑,可能相隔万里,客户端要调用服务端代码,必须通讯,哪里是随便想调就调的?<%%>的写法称为动态页,里面的代码是服务端生成页面代码时执行的,那时候浏览器中页面根本还未生成,哪里说得上是js调用服务端代码?你可以查看源文件,看看"<%=StopThePage()%>"到达页面究竟是什么[/quote] 修改数据库的,我是想实现页面关闭的时候更改数据库中的状态值。[/quote] 7楼方法即可 window.onbeforeunload = function(){ $.ajax({ async: false, data: {a:x,b:x},//参数 url: '接口地址' }); } 写一个ajax接口,用于修改数据库,页面关闭时调用即可
酸辣瓜条 2013-10-30
  • 打赏
  • 举报
回复
引用 8 楼 wzs_xyz 的回复:
[quote=引用 4 楼 u011188249 的回复:] [quote=引用 2 楼 zzgzzg00 的回复:] 你建一个div div里放上你的那段<%%>里的内容 display设为none 当执行beforunload时将这个div的display设为block试试
不是很明白你的意思,你是说在div中用一个事件来触发StopThePage()吗?而且这样做的意义在哪?我是新手,请多多包涵[/quote] 任何客户端调用服务端代码都必须通讯<%%>的方式不是调用服务端代码 先弄明白什么客户端,什么是服务端,客户端即浏览器,服务端即服务器,两者根本不是同一台电脑,可能相隔万里,客户端要调用服务端代码,必须通讯,哪里是随便想调就调的?<%%>的写法称为动态页,里面的代码是服务端生成页面代码时执行的,那时候浏览器中页面根本还未生成,哪里说得上是js调用服务端代码?你可以查看源文件,看看"<%=StopThePage()%>"到达页面究竟是什么[/quote] 修改数据库的,我是想实现页面关闭的时候更改数据库中的状态值。
酸辣瓜条 2013-10-30
  • 打赏
  • 举报
回复
引用 7 楼 showbo 的回复:
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
    window.onbeforeunload = onbeforeunload_handler;
    function onbeforeunload_handler() {
        //var a = "<%=StopThePage()%>";
        var a;
        $.ajax({ async: false, url: '你的动态页地址',cache:false, complete: function (xhr) {a=xhr.responseText } });
        alert("关闭");
        var warning = "请签退后离开本页面";
        return warning;
    } 
       
</script>
导入jquery,基础的ajax就不写了。。有需要自己去了解
好的,谢谢,我去学习下
未知数 2013-10-30
  • 打赏
  • 举报
回复
引用 4 楼 u011188249 的回复:
[quote=引用 2 楼 zzgzzg00 的回复:] 你建一个div div里放上你的那段<%%>里的内容 display设为none 当执行beforunload时将这个div的display设为block试试
不是很明白你的意思,你是说在div中用一个事件来触发StopThePage()吗?而且这样做的意义在哪?我是新手,请多多包涵[/quote] 任何客户端调用服务端代码都必须通讯<%%>的方式不是调用服务端代码 先弄明白什么客户端,什么是服务端,客户端即浏览器,服务端即服务器,两者根本不是同一台电脑,可能相隔万里,客户端要调用服务端代码,必须通讯,哪里是随便想调就调的?<%%>的写法称为动态页,里面的代码是服务端生成页面代码时执行的,那时候浏览器中页面根本还未生成,哪里说得上是js调用服务端代码?你可以查看源文件,看看"<%=StopThePage()%>"到达页面究竟是什么
Go 旅城通票 2013-10-30
  • 打赏
  • 举报
回复
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script>
<script>
    window.onbeforeunload = onbeforeunload_handler;
    function onbeforeunload_handler() {
        //var a = "<%=StopThePage()%>";
        var a;
        $.ajax({ async: false, url: '你的动态页地址',cache:false, complete: function (xhr) {a=xhr.responseText } });
        alert("关闭");
        var warning = "请签退后离开本页面";
        return warning;
    } 
       
</script>
导入jquery,基础的ajax就不写了。。有需要自己去了解
酸辣瓜条 2013-10-30
  • 打赏
  • 举报
回复
引用 5 楼 showbo 的回复:
[quote=引用 3 楼 u011188249 的回复:] [quote=引用 1 楼 showbo 的回复:] 你那个是服务端代码,当然是执行网服务器端代码了才发送到客户端 楼主去了解什么是服务器端代码和客户端代码嘎。。
原来是这样,受教了。我这个方法里是修改数据库的代码,那只能写在脚本里吗?这样岂不是很不安全?[/quote] 动态用ajax发送请求执行你的服务器端代码,注意onbeforeunload中的ajax只能用同步的,异步的ajax可能会被卸载掉 window.open可能被拦击[/quote] ajax还完全不了解啊,而且ajax不就是异步的javascript和Xml吗?同步的话是什么概念?您有时间的话能否给我写段代码
Go 旅城通票 2013-10-30
  • 打赏
  • 举报
回复
引用 3 楼 u011188249 的回复:
[quote=引用 1 楼 showbo 的回复:] 你那个是服务端代码,当然是执行网服务器端代码了才发送到客户端 楼主去了解什么是服务器端代码和客户端代码嘎。。
原来是这样,受教了。我这个方法里是修改数据库的代码,那只能写在脚本里吗?这样岂不是很不安全?[/quote] 动态用ajax发送请求执行你的服务器端代码,注意onbeforeunload中的ajax只能用同步的,异步的ajax可能会被卸载掉 window.open可能被拦击
酸辣瓜条 2013-10-30
  • 打赏
  • 举报
回复
引用 2 楼 zzgzzg00 的回复:
你建一个div div里放上你的那段<%%>里的内容 display设为none 当执行beforunload时将这个div的display设为block试试
不是很明白你的意思,你是说在div中用一个事件来触发StopThePage()吗?而且这样做的意义在哪?我是新手,请多多包涵
酸辣瓜条 2013-10-30
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
你那个是服务端代码,当然是执行网服务器端代码了才发送到客户端 楼主去了解什么是服务器端代码和客户端代码嘎。。
原来是这样,受教了。我这个方法里是修改数据库的代码,那只能写在脚本里吗?这样岂不是很不安全?
似梦飞花 2013-10-29
  • 打赏
  • 举报
回复
你建一个div div里放上你的那段<%%>里的内容 display设为none 当执行beforunload时将这个div的display设为block试试
Go 旅城通票 2013-10-29
  • 打赏
  • 举报
回复
你那个是服务端代码,当然是执行网服务器端代码了才发送到客户端 楼主去了解什么是服务器端代码和客户端代码嘎。。

87,910

社区成员

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

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