关闭标签页/浏览器时触发Angularjs事件

拉齐奥

我想在Angularjs控制器中触发JS代码。

我有这个:

$scope.$on('$destroy', function () {
            alert('page1');
        });

当我离开使用该控制器的页面时,此方法工作正常,但当我关闭标签/浏览器时,该方法不起作用。

标签/浏览器关闭时是否需要使用其他代码来触发JS代码?

标记

从角度文档:

$ destroy();

从父范围中删除当前范围(及其所有子级)。删除意味着对$ digest()的调用将不再传播到当前作用域及其子级。删除还意味着当前范围可以进行垃圾回收。

$ destroy()通常由ngRepeat等指令用于管理循环的展开。

就在销毁示波器之前,在此示波器上广播$ destroy事件。应用程序代码可以注册$ destroy事件处理程序,这将使它有机会执行任何必要的清除。

请注意,在AngularJS中,还有一个$ destroy jQuery事件,该事件可用于在从DOM中删除元素之前清除DOM绑定。

这只是处理范围本身被销毁的情况,尽管在关闭选项卡/浏览器时似乎没有发生。

您将必须使用较低级别的onunload和onbeforeunload事件方法来处理这种情况,这是您可能会发现有用的另一篇文章:

javascript检测浏览器关闭选项卡/关闭浏览器

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何防止mailto事件在浏览器中打开新标签页

尝试检测浏览器关闭事件

关闭标签页/浏览器之前的确认

Java:为什么在关闭标签页或浏览器时未破坏http会话?

用户关闭浏览器时发生“注销”事件

无法使用JavaScript在Chrome浏览器中关闭标签页

如何判断streamDestroyed事件是由session.disconnect()还是浏览器关闭触发的

当浏览器选项卡或窗口关闭时,是否会触发一般事件?

单击目标_blank的链接使浏览器立即关闭新标签页

在Firefox / Chrome上打开新标签页或窗口时,如何获得新的浏览器会话?

启动浏览器时,防止在Firefox中自动加载标签页

当重新打开浏览器时,Chrome阻止更新所有标签页吗?

在Google Chrome浏览器中打开新标签页时不显示缩略图

浏览器关闭事件

检测浏览器/标签页关闭

浏览器关闭事件(按流程)

如何识别浏览器元素[XUL / firefox]的标签关闭事件

关闭浏览器时的会话超时

打开时如何设置关闭浏览器或标签页弹出

发生某些事件后,在同一浏览器窗口中打开新标签页

如何在JavaScript或jquery中跟踪浏览器刷新/返回/标签关闭和浏览器关闭事件

检测浏览器关闭事件

在浏览器上退出或关闭标签页

关闭浏览器或标签浏览器时,使用OWIN关闭会话

如何关闭浏览器标签

关闭浏览器事件

切换标签页时,Chrome扩展程序浏览器操作异常

如何关闭Google Chrome浏览器左侧的标签页?

在浏览器中触发事件时,事件处理程序在什么时候确定?