如何在关闭浏览器或窗口时触发 Angularjs 事件
How to Fire Angularjs Event when close browser or window?
我想在用户关闭浏览器或窗口选项卡时使用angularjs时清除本地存储值。我尝试了以下代码。
window.addEventListener("beforeunload", function (e) {
var confirmationMessage = "'o/";
alert("exit");
(e || window.event).returnValue = confirmationMessage; //Gecko + IE
return confirmationMessage; //Webkit, Safari, Chrome
});
在上面的代码中,它在刷新页面并关闭页面时询问确认警报消息。但是我想在关闭浏览器/窗口选项卡时触发angularjs事件,而无需询问确认消息。
在我参与的最后一个项目中,我使用了以下代码:
$window.onbeforeunload = function (event) {
if (self.form.$dirty) {
return 'You have made changes, but you did not save them yet.'nLeaving the page will revert all changes.';
}
}
首先,它执行检查以查看表单中的数据是否已更改。如果是这样,当用户尝试关闭窗口或转到另一个 url 时,将显示一个弹出窗口,指出存在未保存的更改。
因此,在这种情况下,您可以访问控制器,因此所有角度事件都应该能够触发。
这个对我有用,但你需要注意,自定义消息在大多数浏览器(如chrome,IE,Firefox)中不起作用。
window.onbeforeunload = () => {
return 'Are you sure you want to leave without saving?';
}
当用户刷新或关闭选项卡或窗口时,这将触发,并显示浏览器默认消息。
我已经尝试过这段代码,它对我有用!
window.onbeforeunload = close;
function close(){
// do something...
localStorage.clear();
sessionStorage.clear();
return null;
}
相关文章:
- $window.ga在AngularJS事件中未定义
- 如何在所有ng点击事件AngularJS上启动一个方法
- AngularJS-如何只对多个事件的组合采取行动
- 点击AngularJS模态窗口捕捉背景事件
- AngularJs的ng-click$事件将子元素作为目标传递
- Angularjs:从多个控制器捕获事件
- Angularjs事件与发布/订阅指令之间的通信
- 视图焦点的AngularJS事件
- JavaScript 表单如何提交 fire angularjs 事件
- 如何在关闭浏览器或窗口时触发 Angularjs 事件
- AngularJS 事件,用于触摸等效于鼠标悬停
- AngularJS事件,在应用所有作用域后触发
- 如何将 AngularJS 事件重新广播到子范围
- 使用jasmin对AngularJS$事件进行单元测试
- AngularJS:事件回调不会在google maps原生地图标记上触发
- AngularJs事件$stateChangeStart未触发
- 占位符求值后的AngularJS事件
- AngularJS事件处理程序不启动
- 如何安全地清理指令中的AngularJS事件绑定
- TypeScript angularjs 事件绑定