2013-02-25 70 views
0

我需要做的一些操作,当用户点击浏览器中的[x]而不是页面卸载时,因为刷新或页面之间的正常导航...如何在用户关闭窗口时触发事件,但在导航/刷新/等时不能触发事件?

很明显,我不能依靠onclose,onbeforeunload或者onunload事件,因为它们在导航到其他页面或刷新同一页面时也被触发,并且不是那些必须完成这些操作的时刻...

我该如何做到这一点?

+4

将处理程序绑定到您不希望触发消息的东西,例如所有定位标记点击您的页面。在onbeforeunload事件中,检查是否已经设置了其中一个处理程序的布尔值。如果没有,提示消息。 – jbabey 2013-02-25 13:29:27

+0

Buf如果用户点击书签或其他东西,它也被解雇,所以我必须找到另一种方式...... – diminuta 2013-03-06 12:03:30

回答

0

我不知道这是否在其他浏览器比IE(规格的状态,它已经在IE浏览器...只能检查),但这个工程:

window.onbeforeunload = function() { 
    if ((window.event.clientX < 0) || (window.event.clientY < 0) || (window.event.clientX < -80)) { // close button 
     //things to do when the user closes the tab or window pressing the [x] 
    } else if (window.event.altKey == true) { // ALT + F4 
     //things to do when the user closes with ALT+F4 
    } 
}; 

嗯,这并未” t如果用户点击书签,因为它也是一个客户端0 < 0 ...

+0

嗯,这项工作,但如果用户点击书签,它也被解雇,所以这不是一个解决方案...: ( – diminuta 2013-03-06 12:02:53

相关问题