`

浏览器窗口关闭事件的监听搜集

    博客分类:
  • js
 
阅读更多
方式一:(适用与IE浏览器,而且刷新不提示,只在点击浏览器关闭按钮的时候提示)
<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey)
{
return "您要离开吗?";
}
}
</script>
----------------------------------------------------------------------------------------------------
方式二:适用与IE和FF,不区分刷新和关闭
<script type="text/javascript">
 
    window.onbeforeunload = onbeforeunload_handler;
    window.onunload = onunload_handler;
    function onbeforeunload_handler(){
        var warning="确认退出?";        
        return warning;
    }
    
    function onunload_handler(){
        var warning="谢谢光临";
        alert(warning);
    }

</script>
---------------------------------------------------------------------------------------------------
方式三:适用与IE和FF,不区分刷新和关闭,最简单的
<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
return "您确定退出吗?";
}
</script>
---------------------------------------------------------------------------------------------------
方式四:适用与IE和FF,不区分刷新和关闭,稍复杂的
<script language="javascript">
var MSG_UNLOAD="如果你此时离开档案系统,所做操作信息将全部丢失,是否离开?";
var UnloadConfirm = {};
//启用监听浏览器刷新、关闭的方法
UnloadConfirm.set = function(confirm_msg){
    window.onbeforeunload = function(event){
        event = event || window.event;
        event.returnValue = confirm_msg;
    }
}
//关闭监听浏览器刷新、关闭的方法
UnloadConfirm.clear = function(){
    window.onbeforeunload = function(){};
}
UnloadConfirm.set(MSG_UNLOAD);
</script>
--------------------------------------------------------------------------------------------------
方式五:只适用于IE6下的关闭按钮和快捷键关闭的,刷新不提示
<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
var beforeExit='<fmt:message key="systemMessage.beforeExitWarning" />';
  if(event.clientY<0  &&  event.clientX>document.body.clientWidth-20  ||  event.clientY<0  &&  event.clientX<20  ||
event.altKey || event.ctrlKey ||  event.clientY>document.body.clientHeight){
alert(beforeExit);
return warnning;
}   
}
</script>
****************************************************************************************************
另附判断浏览器类型的JS
<script type="text/javascript">
        var Sys = {};
        var ua = navigator.userAgent.toLowerCase();
        if (window.ActiveXObject)
            Sys.ie = ua.match(/msie ([\d.]+)/)[1]
        else if (document.getBoxObjectFor)
            Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
        else if (window.MessageEvent && !document.getBoxObjectFor)
            Sys.chrome = ua.match(/chrome\/([\d.]+)/)[1]
        else if (window.opera)
            Sys.opera = ua.match(/opera.([\d.]+)/)[1]
        else if (window.openDatabase)
            Sys.safari = ua.match(/version\/([\d.]+)/)[1];
     
        //以下进行测试
        if(Sys.ie) document.write('IE: '+Sys.ie);
        if(Sys.firefox) document.write('Firefox: '+Sys.firefox);
        if(Sys.chrome) document.write('Chrome: '+Sys.chrome);
        if(Sys.opera) document.write('Opera: '+Sys.opera);
        if(Sys.safari) document.write('Safari: '+Sys.safari);
    </script>
---------------------------------------------------------------------------------------------------
区分浏览器,IE和FF分别处理(奇怪的是,IE下有时候失效)
<script type="text/javascript">
window.onbeforeunload=onclose;
function onclose()
{
var Sys = {};
var warnning = '<fmt:message key="systemMessage.exitWarning" />';
        var ua = navigator.userAgent.toLowerCase();
        if (window.ActiveXObject)
            Sys.ie = ua.match(/msie ([\d.]+)/)[1]
        else if (document.getBoxObjectFor)
            Sys.firefox = ua.match(/firefox\/([\d.]+)/)[1]
        if(Sys.ie) {//for IE
if(event.clientX>document.body.clientWidth&&event.clientY<0||event.altKey) 
{    
window.event.returnValue = warnning ;  

}
        if(Sys.firefox) //for FF
        return warnning;
}
    </script>
--------------------------------------------
最简单的判断浏览器类型的方法
<script type="text/javascript">
if(-[1,]){
     alert("这不是IE浏览器!");
}else{
     alert("这是IE浏览器!");
}
</script>
[1,]在标准浏览器会返回字符串"1",相当于调用[1,].toString,
,IE则返回"1,"。但是这样IE与标准都会通过检测,因此使用负号强制转换为数字,
标准能成功转换为1,1会在if中自动转换为true,而IE则转换为NaN,再自动转换为false!
分享到:
评论

相关推荐

    js监控IE火狐浏览器关闭、刷新、回退、前进事件.docx

    此事件在浏览器窗口即将关闭时触发。需要注意的是,不同浏览器对此事件的支持程度和行为有所不同。 ```javascript window.onbeforeunload = function() { if (flag) { var evt = window.event || arguments[0]; ...

    JS关闭窗口时产生的事件及用法示例

    在JavaScript中,当用户尝试关闭浏览器窗口或标签页时,我们可以监听到`onbeforeunload`事件。这个事件在窗口即将关闭之前触发,提供了一个执行某些操作的机会,比如保存数据、提示用户确认离开页面等。 描述中提到...

    MFC 中使用CEF内核实现简单浏览器

    实现`OnNavigationStateChange`事件,监听浏览器的导航状态变化,例如加载开始、加载结束等。通过`CefLoadHandler`接口,可以控制何时显示或隐藏进度条,以及处理错误页面。 5. **视频播放支持** CEF基于Chromium...

    BHO浏览器插件介绍.docx

    每个BHO对象与浏览器窗口的生命周期绑定,即每当浏览器窗口创建时,相应的BHO实例也会被创建。 **手动注册与反注册BHO** 如果需要手动注册或反注册BHO,可以使用命令行工具Regsvr32.exe。例如,使用`regsvr32.exe ...

    Delphi自制小浏览器

    例如,我们可以为TWebBrowser组件添加事件监听器,当用户点击链接时触发`OnNewWindow3`事件,决定是否允许新窗口打开,或者使用`OnDocumentComplete`事件来检测页面加载完成并执行相应的代码。 3. **自定义功能扩展...

    C# 调用 Cefsharp浏览器获取登录后的cookie

    3. **创建浏览器实例**:创建一个ChromiumWebBrowser实例,这将是我们的浏览器窗口。可以设置URL、大小等属性。 ```csharp ChromiumWebBrowser browser = new ChromiumWebBrowser("http://example.com/login"); `...

    浏览器扩展程序仅供学习自用

    6. **后台脚本和背景页面**:后台脚本在浏览器启动时运行,即使没有浏览器窗口打开也持续存在。它们负责处理非用户界面相关的任务,如定时任务、网络请求等。 7. **权限管理**:扩展需要声明其所需的权限,例如访问...

    弹出式窗口代码产生器

    在网页开发中,弹出窗口常用于通知、确认操作、展示详情或收集用户输入。它们可以是简单的警告对话框,也可以是复杂的功能性组件,如模态框、下拉菜单或侧滑面板。弹出窗口代码的生成涉及到以下几个关键知识点: 1....

    JQueryPopUp窗口控件

    1. **基本概念**:jQuery弹出窗口通常被称为模态或非模态对话框,它们是在网页上打开的新窗口,可以覆盖主页面内容,以展示信息、收集用户输入或进行其他交互。模态对话框会阻止用户与背景页面的交互,直到弹出窗口...

    Model--模式窗口的使用

    在提到"必须是客户端调用才行"时,这意味着模式窗口的打开和关闭通常需要用户交互,如点击按钮或者触发某些DOM事件。服务器端无法直接控制客户端的模式窗口,因为浏览器的安全策略限制了服务器端脚本对客户端页面的...

    始终居于浏览器底部的在线客服QQ代码

    CSS则用来设置这个元素的样式,使其固定在浏览器窗口的底部。关键的CSS属性可能包括`position: fixed`,`bottom: 0`,以及可能的`width`和`right`或`left`属性来调整元素在屏幕上的位置。JavaScript可能用于动态调整...

    javascript经典特效---新窗口中显示提交内容.rar

    这个压缩包文件包含了一个名为"新窗口中显示提交内容.htm"的HTML文件,很可能是一个示例代码,用于演示如何利用JavaScript技术在新的浏览器窗口中呈现用户提交的信息。 JavaScript是一种强大的客户端脚本语言,常...

    jQuery网站地区行业职位选择弹出窗口插件源码.zip

    4. **配置选项**:根据需求,你可以自定义插件的行为,比如设置默认选中的地区、行业或职位,或者定义关闭弹出窗口的事件处理函数。 5. **触发弹出**:在适当的地方,如按钮点击事件中,触发插件显示弹出窗口。 6....

    子窗体传值给父窗体的select

    4. **跨窗口通信**:如果子窗体是新开的浏览器窗口或Tab,那么需要使用`window.opener`属性或者`postMessage` API来通信。`window.opener`引用了创建当前窗口的窗口,可以调用其方法或属性。`postMessage`则是现代...

    适用于JSF RI 1.0 beta的弹出窗口程序 编辑

    4. **事件处理**:JSF的事件处理机制允许在弹出窗口打开、关闭或用户进行操作时执行服务器端代码。这通常通过监听器和方法绑定实现。 5. **AJAX更新**:为了实现无刷新的用户体验,可以利用JSF的AJAX功能(如`...

    JavaScript HTML内容导出Excel兼容所有浏览器

    6. **处理IE浏览器**:在IE中,我们需要监听`beforeunload`或`unload`事件,当用户离开页面时,提示他们粘贴到Excel并保存。 7. **清理**:为了防止内存泄漏,记得在不再需要时调用`URL.revokeObjectURL()`释放创建...

    java应用程序登录窗口

    在创建登录窗口时,我们需要实例化JFrame对象,并设置其大小、位置以及关闭操作的行为。 2. **JDIC库**:JDIC库为Java提供了与桌面环境集成的能力,包括加载本地Web浏览器组件。在我们的例子中,我们可以使用JDIC的...

    轻量级的弹出窗口

    7. **事件处理**:可能提供事件监听器,如窗口打开、关闭、按钮点击等,方便进行更复杂的交互逻辑。 与C#后台交互时,可以通过AJAX(异步JavaScript和XML)技术来实现。C#后端可以处理业务逻辑和数据处理,然后将...

    在线客服支持拖动关闭

    JavaScript用于监听用户的鼠标事件,如mousedown(鼠标按下)、mousemove(鼠标移动)和mouseup(鼠标释放),当用户在客服窗口上按下鼠标并移动时,JavaScript会根据鼠标的移动改变窗口的位置。在mouseup事件发生时...

Global site tag (gtag.js) - Google Analytics