html捕获页面关闭,如何捕获浏览器窗口关闭事件?

  • Post author:
  • Post category:其他


这个beforeunload每当用户出于任何原因离开您的页面时,都会触发。

例如,如果用户提交表单、单击链接、关闭窗口(或选项卡)或使用地址栏、搜索框或书签转到新页面,则会触发该选项。

可以使用以下代码排除表单提交和超链接(其他框架除外):var inFormOrLink;$(‘a’).on(‘click’, function() { inFormOrLink = true; });$(‘form’).on(‘submit’, function() { inFormOrLink = true; });

$(window).on(“beforeunload”, function() {

return inFormOrLink ? “Do you really want to close?” : null; })

对于早于1.7的jQuery版本,请尝试如下:var inFormOrLink;$(‘a’).live(‘click’, function() { inFormOrLink = true; });$(‘form’).bind(‘submit’, function() { inFormOrLink = true; });

$(window).bind(“beforeunload”, function() {

return inFormOrLink ? “Do you really want to close?” : null; })

这个live方法不适用于submit事件,因此,如果您添加了一个新表单,则还需要将处理程序绑定到它。

请注意,如果不同的事件处理程序取消提交或导航,则如果窗口随后实际关闭,则将失去确认提示。您可以通过将时间记录在submit和click事件,并检查beforeunload几秒钟后就会发生。