后退按钮事件未触发 Angular
Back button event does not fire Angular
我试图通过点击浏览器中的后退按钮将用户重定向到特定的 url,这是代码
constructor(private router: Router,private location: PlatformLocation) {
let eventUrl = window.sessionStorage.getItem('Event');
this.location.onPopState(() => {
alert('click');
this.router.navigate(['/', this.selectedLanguage, 'event', eventUrl]);
});
}
但当用户单击后退按钮时似乎不会触发该事件。代码在当前组件中。问题是什么?
编辑
我尝试了下面建议的答案,但这似乎也不起作用,函数被调用,但它仍然重定向到上一页而不是下面提到的 url
unload(event: any) {
let eventUrl = window.sessionStorage.getItem('buyerEvent');
this.router.navigateByUrl('/' + this.selectedLanguage + '/event/' + eventUrl);
}
我正在使用位置
Import { Location } from '@angular/common';
在构造函数上声明
constructor(private _location: Location){}
并创建函数
backClicked() {
this._location.back();
}
然后将其设置为按钮
<button (click)="backClicked()"> TEAM FALL BACK</button>
然后看着奇迹发生......
您可以将离开应用程序时想做的事情绑定到 window.unload
事件。这里我使用了HostListener
.
@HostListener('window: unload', ['$event'])
unload(event) {
window.open('https://localhost:4200', '_blank');
window.close();
}
提到 Chrome 默认情况下会阻止 window.open
,您必须更改阻止策略。
我试图通过点击浏览器中的后退按钮将用户重定向到特定的 url,这是代码
constructor(private router: Router,private location: PlatformLocation) {
let eventUrl = window.sessionStorage.getItem('Event');
this.location.onPopState(() => {
alert('click');
this.router.navigate(['/', this.selectedLanguage, 'event', eventUrl]);
});
}
但当用户单击后退按钮时似乎不会触发该事件。代码在当前组件中。问题是什么?
编辑
我尝试了下面建议的答案,但这似乎也不起作用,函数被调用,但它仍然重定向到上一页而不是下面提到的 url
unload(event: any) {
let eventUrl = window.sessionStorage.getItem('buyerEvent');
this.router.navigateByUrl('/' + this.selectedLanguage + '/event/' + eventUrl);
}
我正在使用位置
Import { Location } from '@angular/common';
在构造函数上声明
constructor(private _location: Location){}
并创建函数
backClicked() {
this._location.back();
}
然后将其设置为按钮
<button (click)="backClicked()"> TEAM FALL BACK</button>
然后看着奇迹发生......
您可以将离开应用程序时想做的事情绑定到 window.unload
事件。这里我使用了HostListener
.
@HostListener('window: unload', ['$event'])
unload(event) {
window.open('https://localhost:4200', '_blank');
window.close();
}
提到 Chrome 默认情况下会阻止 window.open
,您必须更改阻止策略。