【问题标题】:How to store data on closing of tab and browser in angularjs如何在angularjs中存储关闭选项卡和浏览器的数据
【发布时间】:2023-12-28 06:48:02
【问题描述】:

我必须在关闭选项卡和浏览器后存储关闭时间。关闭时间应该存储在 angularjs 的本地存储中。

我正在使用 $localStorage 和 $window 指令。

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    您可以使用 onunloadonbeforeunload 事件来处理此问题,但条件是即使在点击链接导航到其他站点时它们也会触发

    angular
      .module('app', [])
      .controller('AppController', function ($localStorage, $window) {
         $window.onunload = function () {
           $localStorage.setItem('LastLoggedOutTime', new Date());
         }
      });
    

    【讨论】:

    • 上面的代码会给出加载时间,但我想关闭标签或浏览器时的关闭时间。请建议?
    【解决方案2】:
    angular.module('app', [])
        .controller('exitController', function($scope, $window) {
            $scope.onExit = function() {
                // your function
            };
    
            $window.onbeforeunload =  $scope.onExit;
    });
    

    【讨论】:

      【解决方案3】:

      你可以使用...beforeunload

      $(document).ready(function()
      {
          $(window).bind("beforeunload", function() { 
              return "Do you really want to close?"; 
          });
      });
      

      纯JS

      window.addEventListener("beforeunload", function (e) {
      
      });
      

      https://developer.mozilla.org/en-US/docs/Web/Events/beforeunload?redirectlocale=en-US&redirectslug=DOM%2FMozilla_event_reference%2Fbeforeunload

      【讨论】:

      • 是的,您的代码提醒我离开浏览器或留在浏览器上关闭选项卡或浏览器,但是
      • 您的代码提醒我关闭或停留在浏览器中,但我如何在关闭浏览器时存储关闭时间||标签。请建议?
      • 你可以在 beforeunload 事件中使用 $locationChangeStart 或 $stateChangeSuccess...看看这个指令...*.com/a/22866537/337128
      最近更新 更多