1

所以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);">
4

1 回答 1

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);">
于 2010-09-02T09:58:21.447 回答