2011-11-23 59 views
0

我想保存卸载事件以便稍后执行。例如:jQuery:保存卸载事件供以后使用

// on unload do nothing but safe the event 
jQuery(window).unload(function() { 
      // TODO safe the unload event here somehow 
      // unloadEvent = this; 
      return false; 
}); 

后来,另一段代码应该可以这样执行先前保存的事件,例如:

function finallyUnload() { 
     // TODO 
     // unloadEvent.perform(); 
} 

有没有办法做到这一点?

更新

我的浏览器窗口中有一个Java应用程序硒沟通,需要等待,直到它收到的有关卸载事件的信息以及如何发生的。遇到这种情况时,可以执行卸载事件。

我明白,卸载事件不能延迟或停止,所以我有另一个想法。如何拦截所有与href和按钮链接的点击,以及表单提交。然后我手动将window.location设置为所需的URL或提交表单。这可以工作吗?

+0

'我要保存卸载事件以后on'执行它。你能否定义'稍后'? 'unload'事件发生后,页面上没有太多的JavaScript执行。那么,实际上可能会有,但不会在用户离开它的同一页上。 –

+0

您无法取消“卸载”事件,期间。 – SLaks

+0

@Darin:我的浏览器窗口正在与一个Java Selenium应用程序进行通信,需要等待它收到关于卸载事件以及它发生的信息。在这种情况下,可以执行卸载事件。 – Alp

回答

0

我找到了解决方法。我拦截了所有的clicksubmit事件,并在我的应用程序提取需要的事件数据后保存它们以备将来使用。

但它并不适用于所有情况:Intercept JavaScript unload events