js 怎么区分浏览器tab刷新还是关闭

网上用unbeforeunload 常见的解决办法都试了 不管用

阅读 3.3k
1 个回答
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<script src="js/jquery-1.12.3.min.js"></script>
<script>
    var currentKeyCode = -1, altkey = false, rightKey = false, pageY = 0, listernType = null;
    $(window).keydown(function () {
        top.altkey = event.altKey;
        top.currentKeyCode = event.keyCode;
    });
    $(document).on("contextmenu", function (e) {
        rightKey = true;

    });
    function isReloadOrClose(event) {
        var msg = null;
        if (currentKeyCode == 116 || rightKey) {
            //116:F5
            if (currentKeyCode == 116) {
                msg = "刷新窗口!(F5)";
            }
            if (rightKey) {
                msg = "右键刷新窗口!";
            }
            top.listernType = "reload";
        } else {
            msg = "点击关闭窗口";
            top.listernType = "close";
            if ((altkey || currentKeyCode == 18) || (currentKeyCode == 115)) {
                msg = "关闭窗口!(alt+F4)";
            }
            if (currentKeyCode == 91) {
                msg = "Mac关闭窗口!(commad)";
            }
        }
        currentKeyCode = -1, altkey = false, rightKey = false, pageY = 0, listernType = null;
        console.log(msg)
        return msg;
    }
    window.onbeforeunload = function (event) {
        return isReloadOrClose(event)
    }

</script>


<body>

</body>

</html>
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题