使用window.onbeforeunload,是否可以知道发生了哪个事件

Using window.onbeforeunload, is it possible to know which event has occurred?

本文关键字:发生了 事件 onbeforeunload window 是否 使用      更新时间:2023-09-26

如何确定事件的触发器是什么(关闭浏览器,关闭选项卡,重定向到其他页面等)?

function winUnload(){
     var pathToCloseCurrentTab = window.location.protocol + "//" + window.location.host + '<%= ResolveUrl("~/Services/SenderAjax.asmx") %>' + "/CloseCurrentTab";         
        $.ajax({
                type: 'POST',
                url: pathToCloseCurrentTab,
                dataType: 'JSON',
                data: {'data': $('input[id$=hfTimeLoadLayOut]').val()}
            });
}
window.onbeforeunload= function (evt){                    
    winUnload();
};

您无法确定是什么触发了卸载事件 - 事件目标将是文档本身,并且依赖元素的不同状态是不可靠的,因为有很多操作可以触发它。

但是,如果您只需要知道某个按钮,链接或表单(等)是否触发了它,则可以侦听其click/submit事件,从而在卸载事件发生之前捕获卸载事件。