是否有任何跨浏览器的JavaScript/jQuery代码来检测浏览器或浏览器选项卡是否正在关闭,而不是由于链接被点击?
我想在用户离开我的angular 2应用程序的特定页面之前警告用户未保存的更改.通常我会使用window.onbeforeunload,但这不适用于单页面应用程序.
我发现在角度1中,你可以挂钩$locationChangeStart事件confirm为用户抛出一个盒子,但我还没有看到任何显示如何使角度2工作,或者如果该事件仍然存在.我也见过为ag1提供功能的插件onbeforeunload,但同样,我还没有看到任何方法将它用于ag2.
我希望其他人找到解决这个问题的方法; 任何一种方法都可以用于我的目的.
看起来Apple已禁用iOS设备(iPhone,iPad,iPod Touch)的window.onbeforeunload事件.很遗憾,我找不到任何关于此事件在Mobile Safari中无效的文档.
有谁知道这个功能有可靠的替代方案吗?Android的浏览器似乎支持它很好,Safari桌面应用程序也支持onbeforeunload事件没有问题.
使用@HostListener挂钩,但确认对话框(询问:你想离开这个页面?...还是你想重新加载这个页面?)没有显示.
代码有效,但确认对话框未显示.
在这里我有:
@HostListener('window:beforeunload', ['$event'])
public doSomething($event) {
console.log("do I see this?") // <---- this logs to the console.
return "something else";
}
Run Code Online (Sandbox Code Playgroud)
但我没有看到这个: