在窗口closures或页面刷新上运行JavaScript代码?

当用户closures浏览器窗口或刷新页面时,有没有办法运行最终的JavaScript代码?

我正在考虑类似onload,但更像onclose? 谢谢。

我不喜欢onbeforeunload方法,它总是popup一个确认框(离开页面/留在mozilla上)或者(重新加载/不在chrome上重新加载)。 有没有办法悄悄执行代码?

有两个window.onbeforeunloadwindow.onunload ,根据浏览器使用不同。 您可以通过将窗口属性设置为函数或使用.addEventListener来分配它们:

 window.onbeforeunload = function(){ // Do something } // OR window.addEventListener("beforeunload", function(e){ // Do something }, false); 

通常情况下,如果您需要停止用户离开页面(例如,用户正在处理一些未保存的数据,所以他/她应该在离开之前保存),则会使用onbeforeunloadonunload不被Opera支持,据我所知,但你可以随时设置。

好的,我find了一个工作解决scheme,它包括使用beforeunload事件,然后使处理程序返回null 。 这会执行想要的代码而不会popup确认框。 它是这样的:

 window.onbeforeunload = closingCode; function closingCode(){ // do something... return null; } 

希望这可以帮助。

jQuery版本:

 $(window).unload(function(){ // Do Something }); 

你可以使用window.onbeforeunload

 window.onbeforeunload = confirmExit; function confirmExit(){ alert("confirm exit is being called"); return false; } 

这里的文档鼓励监听onbeforeunload事件和/或在窗口上添加一个事件监听器。

 window.addEventListener('beforeunload', function(event) { //do something here }, false); 

您也可以使用函数或函数引用来填充窗口的.onunload或.onbeforeunload属性。

虽然浏览器的行为不规范,但是在确认是否离开页面时,该函数可能会返回浏览器将显示的值。

该事件被称为beforeunload ,所以你可以分配一个函数window.onbeforeunload

你可以尝试这样的事情:

 <SCRIPT language="JavaScript"> <!-- function loadOut() { window.location="http://www.google.com"; } //--> </SCRIPT> <body onBeforeUnload="loadOut()">