在窗口closures或页面刷新上运行JavaScript代码?
当用户closures浏览器窗口或刷新页面时,有没有办法运行最终的JavaScript代码?
我正在考虑类似onload,但更像onclose? 谢谢。
我不喜欢onbeforeunload方法,它总是popup一个确认框(离开页面/留在mozilla上)或者(重新加载/不在chrome上重新加载)。 有没有办法悄悄执行代码?
有两个window.onbeforeunload
和window.onunload
,根据浏览器使用不同。 您可以通过将窗口属性设置为函数或使用.addEventListener
来分配它们:
window.onbeforeunload = function(){ // Do something } // OR window.addEventListener("beforeunload", function(e){ // Do something }, false);
通常情况下,如果您需要停止用户离开页面(例如,用户正在处理一些未保存的数据,所以他/她应该在离开之前保存),则会使用onbeforeunload
。 onunload
不被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()">