当前位置: 首页 > 面试题库 >

如何使用angularjs在关闭窗口时触发函数

索嘉胜
2023-03-14
问题内容

当用户关闭应用程序时,我需要执行一个函数,但是需要考虑以下几点:

  • 我需要执行一个功能service,然后…
  • …超出范围的基于纯JavaScript的函数在这里不太有用
  • 当我使用路由时,作用域onLocationChangeSuccess绑定也无济于事

因此此解决方案将无法正常工作:https :
//stackoverflow.com/a/18355715/773595

因为这会在每次位置更改时触发,但是我只需要在关闭选项卡/窗口时触发一次。


问题答案:

您可以在控制器/指令中注册onbeforeunload,然后就可以访问作用域。如果需要服务,我会将其注册到angular.run生命周期中。

angular.module('app', [])

  .controller('exitController', function($scope, $window) {

    $scope.onExit = function() {

      return ('bye bye');

    };



   $window.onbeforeunload =  $scope.onExit;

  });


<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

<div ng-app="app" ng-controller="exitController">

  <a href="http://www.disney.com">Leave page</a>

</div>


 类似资料:
  • 问题内容: 在Swing中,您可以简单地用于在关闭窗口时关闭整个应用程序。 但是,在JavaFX中找不到等效项。我有多个打开的窗口,如果一个窗口关闭,我想关闭整个应用程序。用JavaFX做到这一点的方法是什么? 编辑: 我了解可以覆盖以在窗口关闭时执行一些操作。问题是应该执行什么操作才能终止整个应用程序? 类中定义的方法不执行任何操作。 问题答案: 当最后一个关闭时,应用程序自动停止。目前,您的类

  • 对于JavaFX,通常是: 是否有方法检测TornadoFX视图关闭?

  • 我正在尝试在我的Flink作业中使用事件时间,并使用来提取时间戳并生成水印。但是我有一些输入Kafka具有稀疏流,它可以长时间没有数据,这使得中的根本没有调用。我可以看到数据进入函数。 我已经设置了getEnv()。getConfig()。设置自动水印间隔(1000L) 我尝试过 还有会话窗口 所有的水印都显示没有水印,我怎么能让Flink忽略这个没有水印的东西呢?

  • 我有一个python脚本,它每小时从网站上删除数据。它目前存储在服务器上,并且运行良好,因为我正在使用任务调度程序来安排它每小时执行脚本。 我正在使用此代码 要退出浏览器窗口 我的问题是,每当我不登录服务器时,它都会开始堆叠网络驱动程序窗口,因为当我登录服务器时,driver.quit() 函数不知何故不起作用。每天早上上班时,我都有大量的窗口要关闭服务器。 我试图退出、关闭、处置,但无济于事。我

  • 问题内容: 我试图找出用户何时离开指定页面。找出他何时使用页面内的链接进行导航是没有问题的,但是我有点需要标记一些东西,例如当他关闭窗口或键入另一个URL并按Enter时。第二个不是那么重要,但第一个是重要。所以这是一个问题: 我如何查看用户何时关闭我的页面(捕获window.close事件),然后……并没有什么关系(我需要发送AJAX请求,但是如果可以获取它以运行警报,我可以剩下的)。 问题答案

  • 作为Java的新手,多年的iOS和。NET的经验,我发现这是非常令人困惑。我想要的是一个非常简单的对话框(从主窗口调用),带有OK和Cancel按钮。单击“确定”时,它会执行一些操作,然后关闭对话框。单击“取消”时,它只会取消对话框。 然而,使用SWT shell对话框类来实现这一点并不明显。如何获得一个按钮来关闭对话框,并将执行返回到主窗口?