如何识别onbeforeunload是由单击关闭按钮引起的

ian*_*ian 4 javascript internet-explorer onbeforeunload

如何通过单击关闭按钮或页面刷新或通常导致onbeforeunload导致的事件来确定是否导致onbeforeunload?

这是一个片段:

window.onbeforeunload = function( e ){
    if( !e ) e = window.event;

    // insert code to determine which is the source of the event
}
Run Code Online (Sandbox Code Playgroud)

请帮我.

小智 5

参考各种文章,做一些试验和错误,最终开发出这个想法,对我来说就像我希望它发生的那样.逻辑很简单它实现也很简单.想法是检测通过关闭浏览器触发的卸载事件.在这种情况下,鼠标将离开窗口,指向关闭('X')按钮.

$(window).on('mouseover', (function () {
    window.onbeforeunload = null;
}));


$(window).on('mouseout', (function () {
    window.onbeforeunload = ConfirmLeave;
}));

function ConfirmLeave() {
    return "";
}
Run Code Online (Sandbox Code Playgroud)

ConfirmLeave函数会给出弹出的默认消息,它有任何需要自定义的消息,返回要显示的文本而不是空字符串

看看这有帮助,:)