我需要做的一些操作,当用户点击浏览器中的[x]而不是页面卸载时,因为刷新或页面之间的正常导航...如何在用户关闭窗口时触发事件,但在导航/刷新/等时不能触发事件?
很明显,我不能依靠onclose,onbeforeunload或者onunload事件,因为它们在导航到其他页面或刷新同一页面时也被触发,并且不是那些必须完成这些操作的时刻...
我该如何做到这一点?
我需要做的一些操作,当用户点击浏览器中的[x]而不是页面卸载时,因为刷新或页面之间的正常导航...如何在用户关闭窗口时触发事件,但在导航/刷新/等时不能触发事件?
很明显,我不能依靠onclose,onbeforeunload或者onunload事件,因为它们在导航到其他页面或刷新同一页面时也被触发,并且不是那些必须完成这些操作的时刻...
我该如何做到这一点?
我不知道这是否在其他浏览器比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 ...
嗯,这项工作,但如果用户点击书签,它也被解雇,所以这不是一个解决方案...: ( – diminuta 2013-03-06 12:02:53
将处理程序绑定到您不希望触发消息的东西,例如所有定位标记点击您的页面。在onbeforeunload事件中,检查是否已经设置了其中一个处理程序的布尔值。如果没有,提示消息。 – jbabey 2013-02-25 13:29:27
Buf如果用户点击书签或其他东西,它也被解雇,所以我必须找到另一种方式...... – diminuta 2013-03-06 12:03:30