需要您的一些帮助人员。 我试图在用户尝试离开当前浏览器(刷新,关闭标签和窗口,从浏览器单击后退按钮)时提示用户。我在 IOS移动设备上遇到此问题,它不会触发网页隐藏和/或卸载前。
我知道safari不再支持beforeunload事件,因此我已经使用类似的逻辑为pagehide添加了一个事件侦听器,并且也不会触发。代码是用角度编写的。
尝试的方法:
// Method decorator, Did not work for both
@Hostlistner(window:pagehide), @Hostlistner(window:beforeunload)
doSomething(event:any){
event.returnValue = true;
return true;
}
// Component host property, Also tried this on beforeunload, did not work for both
@Component({
...
host: "(window:pagehide)" : "doSomething($event)"
})
// Plain javascript, have tried pagehide too, did not work for both
window.onbeforeunload = (event) => {
event.returnValue = true;
return true;
};
//Also tried binding it via addEventListener method of window/document, did not work for both
window.addEventListener('beforeunload', (event) => {
this.log("before unload");
event.returnValue = true;
return true;
});
已经通过stackblitz进行了尝试:https://stackblitz.com/edit/angular-qkezha?file=src%2Fapp%2Fapp.component.ts
用于测试问题的设备:iPhone 6,IOS 12.1
适用于Chrome和Safari的Mobile IOS上出现此问题,尚未在Firefox中对其进行测试,但我怀疑它是否也可以在Firefox上运行。代码可在Android Chrome和Windows Desktop Chrome上运行
我已经在这上待了几天了。在这里和那里搜索。非常感谢任何帮助或提示。谢谢大家!