<script language="JavaScript" type="text/javascript">
window.onbeforeunload = CloseEvent;
var DispClose = true;
function CloseEvent()
{
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
if (DispClose)
{
return "是否离开当前页面?";
}
}
}
window.onunload= UnLoadEvent;
function UnLoadEvent()
{if(isFirefox=navigator.userAgent.indexOf("Firefox")>0){
DispClose = false;
//在这里处理关闭页面前的动作
window.close();
}
}
</script>
如果是其他页面离开的话就不做上面的 window.close处理
只要将 onunload 设为null 就可以了 window.onunload= null;
function submittest(){
// var pfv = parseInt($("#pf").html());
var pfv = 5;
if(rms < pfv){
$("#dialog-time").html("考试时间不足"+pfv+"秒,不能交卷!");
$("#dialog-time").dialog("open");
}else{
var qf = parseInt($("#qf").html());
if(qf>0 && parseInt(lms)){
window.onunload= null;
$("#dialog-confirm").html("您还有"+qf+"道试题未做,是否继续交卷!");
$("#dialog-confirm").dialog("open");
}else{
return submital();
}
}
}
以下是我看到的文章
在做一些关于会员在线的问题时,往往我们要根据览器是否关闭来判断用户是否下线,然后再从session和application中将此用户移除。
由于浏览器是无状态的,在这时候捕捉浏览器关闭会出现两种情况:
1.真正的关闭浏览器 (a.点击关闭按钮 b.右击任务栏关闭 c.按alt+F4关闭)
2.刷新浏览器。
那如何判断区分这两种动作呢?
一. Javascript代码处理方法:
function window.onbeforeunload()
{
//用户点击浏览器右上角关闭按钮或是按alt+F4关闭
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
// alert("点关闭按钮");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//用户点击任务栏,右键关闭。s或是按alt+F4关闭
else if(event.clientY > document.body.clientHeight || event.altKey)
{
// alert("任务栏右击关闭");
document.getElementById("hiddenForm:hiddenBtn").click();
// window.event.returnValue="确定要退出本页吗?";
}
//其他情况为刷新
else
{
// alert("刷新页面");
}
}
其中 event.clientX 鼠标光标X坐标
document.body.clientWidth 窗体工作区宽度
event.clientY 鼠标光标Y坐标
event.altKey 是否按下alt键
二. 事件捕捉方法:
<body scroll="no" onbeforeunload="return CloseEvent();" onunload="UnLoadEvent()" >
</body>
<script language="JavaScript" type="text/javascript">
var DispClose = true;
function CloseEvent()
{
if (DispClose)
{
return "是否离开当前页面?";
}
}
function UnLoadEvent()
{
DispClose = false;
//在这里处理关闭页面前的动作
}
在页面卸载之前引发onbeforeunload事件,如果用户选择“是”即确定卸载页面将引发onunload事件,否则返回页面不做任何操作。
分享到:
相关推荐
### 判断浏览器是刷新还是关闭窗口 在网页开发过程中,我们常常希望能在用户退出或离开当前页面时执行一些特定的操作,比如保存用户的状态、显示一个警告框等。为此,JavaScript 提供了 `onunload` 事件,它会在...
通过以上代码及解析,我们可以看出,为了在Firefox浏览器中解决F5刷新事件获取不到`event`对象的问题,开发者采用了一系列的技巧和技术,包括兼容不同浏览器的事件处理机制、定义自定义事件处理函数以及通过调用栈...
这段代码中,`e.returnValue`用于设置旧版浏览器(如IE8和Firefox 4之前)的提示信息,而返回的字符串在Chrome、Safari、Firefox 4+、Opera 12+以及IE 9+等现代浏览器中会被用来显示一个确认对话框。 然而,为了更...
总之,处理"Firefox Firebug JS错误"需要了解JavaScript的基础知识,熟悉Firebug的使用,以及对浏览器兼容性的理解。同时,保持软件更新和使用良好的编程实践也是避免错误的关键。当遇到问题时,不要害怕使用调试...
【C#多标签浏览器】是一种基于C#编程语言开发的桌面应用程序,其核心特性在于它实现了多标签的浏览模式,类似于我们常见的网络浏览器,如Chrome或Firefox。在这款自定义的浏览器中,用户可以在同一个窗口内打开多个...
提琴手 此Firefox扩展允许您从Firefox中启用Fiddler代理。 因为Firefox使用自己的... 在开发此扩展之前,您需要弄乱Firefox菜单中深藏的代理设置,或者重新启动浏览器,这在开发过程中非常烦人,同时打开了许多选项卡和
多页面浏览器通常指的是可以在同一窗口内打开多个网页的浏览器,如我们常见的谷歌Chrome、火狐Firefox等。其主要组成部分包括:界面控件、网络请求模块、页面渲染引擎以及用户交互处理等。在易语言中,实现这些功能...
- **兼容性**:确保代码兼容各种主流浏览器,包括IE、Firefox、Chrome、Safari和Opera等。 - **用户体验**:在Ajax请求期间,可以显示加载指示器,让用户知道页面正在加载。 - **SEO**:由于Ajax加载的内容对搜索...
由于这是一个IE特有功能,它不适用于其他浏览器,如Firefox、Chrome或Safari。HTMLFile对象通常通过JavaScript进行操作,可以用于实现文件上传、下载以及在客户端和服务器间进行数据交换,为创建实时的Web应用程序...
Firefox的Instasaver插件是一款专为Firefox浏览器设计的扩展,旨在为用户提供类似于Instapaper的服务,方便用户保存网页以供离线阅读。这款插件是JavaScript技术的产物,利用了Firefox扩展开发中的核心特性,使得...
3. **兼容性广泛**:与多种浏览器兼容,包括Chrome、Firefox、Safari、Edge和Internet Explorer等。 4. **易于使用**:提供简单易懂的API,使开发者能快速上手。 **二、ASP.NET无刷新分页实现** 实现ASP.NET无刷新...
2. 检查请求的错误状态并进行相应的错误处理。 3. 如果可能,考虑使用Web Workers或者Service Worker来执行同步操作,以避免阻塞主线程。 `ext-basex.js`文件可能包含了上述方法的实现,或者它可能提供了一种特殊的...
IE浏览器使用`onpropertychange`事件来捕获输入框内容的变化,而在其他现代浏览器如Chrome、Firefox和Opera中,我们通常使用`input`事件进行监听。这两种事件各有其特点和适用范围,理解它们的工作机制对于优化跨...
10. **调试技巧**:学会使用浏览器的开发者工具(如Chrome DevTools或Firefox Developer Tools)进行JavaScript调试,可以帮助快速定位和解决问题。 以上只是基于ASP.NET的JavaScript客户端处理技术的一部分,实际...
Test Firefox XMl DOm.htm Firefox中的XML DOM支持 Firefox LoadXML.htm Firefox中的XML DOM支持 XPath Example1.xml XPath Writer.xml 开发中实际使用的XML文档 Test4IE XPath.htm IE中的XPath支持 Test ...
izzyftp是一款专为Firefox OS设计的轻量级FTP客户端,它允许用户在Firefox OS设备上方便地进行文件传输,提供了简单易用的界面和基本的FTP功能。这款应用的诞生,使得Firefox OS用户也能享受到便捷的FTP服务,极大地...
在Firefox插件开发中,JavaScript被用来增加浏览器的功能,比如在本例中,它可能用于监听用户的鼠标选择事件,捕获选中的文本,并在用户点击上下文菜单的特定项时,启动一个到维基百科的搜索请求。 JavaScript在...
jQuery致力于提供跨浏览器的解决方案,确保代码在Firefox、Chrome、Safari、Internet Explorer以及Edge等主流浏览器上都能正常运行。在聊天室应用中,这意味着无论用户使用哪种浏览器,都可以顺畅地参与聊天,提高了...
9. **使用Mathox或Firefox浏览器**:Mathox可能需要安装插件,Firefox浏览器通常可以直接选择复制网页内容,这是因为它们对复制保护的处理方式与IE不同。 以上方法并不能保证在所有情况下都能成功复制网页文字,...
而在其他大部分现代浏览器中,如Firefox、Opera 8.0+和Safari,可以直接使用XMLHttpRequest构造函数来创建对象。但为了兼容性考虑,通常需要编写能够判断浏览器类型的兼容代码。 根据文章提供的代码示例,我们可以...