4

当页面/浏览器像这样关闭时,我有一个 javascript 函数可以触发:

  window.onbeforeunload = function (e) {

    var y = window.event.clientY;// e.pageY || e.clientY;

    if (y < 0) {

        alert('Window closed');

    }
    else {
        alert('Window refreshed');

    }

该功能在 IE 中可以正常工作,但在其他浏览器中则不行。我只想在网页的浏览器/选项卡关闭时触发此功能。不在页面刷新/重新加载中。

请帮忙。

4

1 回答 1

2

该功能在 IE 中可以正常工作,但在其他浏览器中则不行。

这是绝对正常的。其他浏览器根本不允许您在此功能中发出警报。

在 Chrome 中检查一下:

在此处输入图像描述

抱歉,您应该忘记在onbeforeunload处理程序中发出警报。你应该在这个处理程序中做的唯一一件事就是返回一个字符串结果:

window.onbeforeunload = function (e) {
    var y = window.event.clientY;// e.pageY || e.clientY;
    if (y < 0) {
        return 'Window closed';
    }
    else {
        return 'Window refreshed';
    }
};

浏览器有责任决定如何向用户显示此信息,而不是您通过告诉它显式警报来决定。

于 2013-06-20T10:51:47.917 回答