当onbeforeunload不存在时获取Firefox鼠标事件?

时间:2010-08-24 19:00:10

标签: javascript mouseevent onbeforeunload

所以onbeforeunload事件没有鼠标信息,那么如何获得鼠标XY呢?我试图知道用户是否点击浏览器上的关闭按钮立即将其注销(20分钟的会话对于资源来说太长了,但是,我们不会缩短它以使客户生气)。

在IE上,我可以简单地访问鼠标信息,以确定用户是否在onbeforeunload期间点击了关闭按钮。对于FF,我想使用参数化事件,遗憾的是根本没有鼠标信息。

(注意,如果有一个真正的onBrowserClose事件,则不需要这样做。由于情况并非如此,我正在研究替代方案。)

谢谢大家。

只是为了确保人们理解它,这是一个例子。

<head runat="server">
    <title>Untitled Page</title>
<script type="text/javascript">
    function test(event) {
        var X = window.event ? window.event.screenX : event.clientX;

        // IE only because event.clientX for FF = fail.
        if (X == null) {
            alert("No X");
            return;
        }
    };
</script>

</head>
<body onbeforeunload="test(event);">

1 个答案:

答案 0 :(得分:0)

您可以将鼠标移动填充到mousemove事件的变量中,然后在onbeforeunload事件中使用这些变量......

<head runat="server">
    <title>Untitled Page</title>
<script type="text/javascript">
    var X = 0;

    function MouseMoveHandler(event) {
        X = window.event ? window.event.screenX : event.clientX;

        // IE only because event.clientX for FF = fail.
        if (X == null) {
            alert("No X");
            return;
        }
    };

    function BeforeUnloadHandler() {
        alert(X);
    }
</script>

</head>
<body onbeforeunload="BeforeUnloadHandler();" onmousemove="MouseMoveHandler(event);">