js有关闭窗口时的事件吗(点击右上角的x)

请问一下js有关闭窗口时的事件吗(点击右上角的x),我想在关闭窗口时清除localStorage

阅读 11.1k
6 个回答

可以的,unload、beforeUnload都可以,但是建议使用beforeUnload绑定处理,因为这个时候还可以弹窗提示,unload时已经不能再有交互操作了,具体可以看看mdn手册https://developer.mozilla.org...,在unload之前还有两个事件:beforeunload (可取消默认行为的事件)和pagehide

<script>
  window.addEventListener('beforeunload', function(event) {
    console.log('I am the 1st one.');
  });
  window.addEventListener('unload', function(event) {
    console.log('I am the 3rd one.');
  });
</script>

jquery :

$(window).unload( function () { 
    // do something
 } );

js:

onunload事件

可以使用beforeunload 事件捕获,但是需要注意到是,注册事件必须注册在window对象才能生效,如果想在document.body上捕获,那么只有绑定事件才会生效,详情可以参考我在该问题处的回复

这个明显 MDN 的事情。前面几个回答已经提到了,是使用 unload,不过关键你还想进行相关的操作,这样的话,相当于你拦截了关闭窗口,然后想执行完其它操作之后在进行关闭。这里就 结合 unload 事件和 window.close() 来做这样的事情。

window.addEventListener("beforeunload",e=>{
    // dosth
    // then close it
    window.close()
},false)
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题