美文网首页
页面关闭事件的监听onbeforeunload/unload/p

页面关闭事件的监听onbeforeunload/unload/p

作者: IamaStupid | 来源:发表于2021-06-23 14:01 被阅读0次
      <body>
          <h1>测试关闭浏览器触发事件</h1>
          <a href="http://www.baidu.com">跳转self</a>
          <a href="http://www.baidu.com" target="_blank">跳转blank</a>
          <script>
            // chrome中点击tab的叉叉或者点击浏览器的叉叉,都可以触发
            // 可以打断点或debugger进行测试
            window.onbeforeunload = function (event) {
              console.log(event)
              alert('onbeforeunload') // 不会执行
              window.open('www.baidu.com') // 不会执行
            }
            // chrome中点击tab的叉叉或者点击浏览器的叉叉,都可以触发
            // 可以打断点或debugger进行测试
            window.onunload = function (event) {
              console.log(event)
              alert('onunload') // 不会执行
            }
            // 刷新页面后断点好像捕捉不到,但是查看locastorage,确实已经添加了'aaa'
            // 但是隐藏tab,或者收起浏览器,并不会触发,跳转self和刷新页面触发了
            window.onpagehide =  function (event) {
              console.log(event)
              window.localStorage.setItem('aaa', 'aaaa')
              alert('onpagehide') // 不会执行
            }
            // 每次进入页面都会触发
            // onload事件不同的是:由于浏览器“往返缓存”(back-forward cache,或bfcache),前进后腿按钮不会触发onload,但是pageshow依然会触发
            // bfcatche 可以在用户使用浏览器的“后退”和“前进”按钮时加快页面的转换速度
            window.onpageshow = function (params) {
              console.log('onpageshow')
              // window.localStorage.setItem('bbbbb', 'bbbbb')
              alert('onpageshow') // 会执行
            }
            // 页面正常进入的时候,会先触发onload,再触发pageshow,但是前进后退,不会触发onload
            window.onload = function (params) {
              console.log('onload')
              alert('onload') // 会执行
            }
          </script>
      </body>
    

    pageshow/pagehide手机端浏览器应用:https://cnblogs.com/zengfp/p/9910473.html

    你知道关闭页面时怎么向后台发送消息吗? - 简书 (jianshu.com)

    相关文章

      网友评论

          本文标题:页面关闭事件的监听onbeforeunload/unload/p

          本文链接:https://www.haomeiwen.com/subject/hjhbyltx.html