为了账号安全,请及时绑定邮箱和手机立即绑定

检测浏览器或制表符关闭

检测浏览器或制表符关闭

浮云间 2019-05-27 13:05:30
检测浏览器或制表符关闭是否有任何跨浏览器的JavaScript / jQuery代码来检测浏览器或浏览器选项卡是否正在关闭,而不是由于链接被点击?
查看完整描述

4 回答

?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

如果我找到你,你想知道什么时候选项卡/窗口有效关闭。好了,据我所知的唯一途径Javascript,以检测之类的东西都onunloadonbeforeunload事件。

不幸的是(或者幸运的是?),当您将网站留link在浏览器或浏览器后退按钮时,这些事件也会被触发。所以这是我能给出的最佳答案,我认为你不能close在Javascript 中原生地检测到纯粹的答案。如果我在这里错了,请纠正我。


查看完整回答
反对 回复 2019-05-27
?
ITMISS

TA贡献1871条经验 获得超8个赞

来自Firefox文档

出于某些原因,基于Webkit的浏览器不遵循对话框的规范。一个几乎交叉的例子将接近下面的例子。

window.addEventListener("beforeunload", function (e) {
  var confirmationMessage = "\o/";

  (e || window.event).returnValue = confirmationMessage; //Gecko + IE
  return confirmationMessage;                            //Webkit, Safari, Chrome});

此示例用于处理所有浏览器。


查看完整回答
反对 回复 2019-05-27
?
繁华开满天机

TA贡献1816条经验 获得超4个赞

简单解决方案

window.onbeforeunload = function () {
    return "Do you really want to close?";};


查看完整回答
反对 回复 2019-05-27
?
弑天下

TA贡献1818条经验 获得超7个赞

<body onbeforeunload="ConfirmClose()" onunload="HandleOnClose()">var myclose = false;

function ConfirmClose()
{
    if (event.clientY < 0)
    {
        event.returnValue = 'You have closed the browser. Do you want to logout from your application?';
        setTimeout('myclose=false',10);
        myclose=true;
    }
}

function HandleOnClose()
{
    if (myclose==true) 
    {
        //the url of your logout page which invalidate session on logout 
        location.replace('/contextpath/j_spring_security_logout') ;
    }   
}

//如果您只使用一个选项卡关闭选项卡或浏览器,则可以在IE7中使用


查看完整回答
反对 回复 2019-05-27
  • 4 回答
  • 0 关注
  • 644 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信