Javascript 按“后退”按钮时硬重新加载页面

Javascript 按“后退”按钮时硬重新加载页面,javascript,html,angular,typescript,Javascript,Html,Angular,Typescript,我有一个Angular 8应用程序,有100多个页面(组件),我只使用Chrome浏览器的应用程序。当我点击浏览器后退按钮时,CSS会随机失真,我必须按Ctrl+Shift+R才能正确加载CSS。因此,我正在寻找一种方法,以便在按下浏览器后退按钮时自动执行此操作 因此,当用户单击任何页面上的浏览器后退按钮时,基本上都希望执行“硬重新加载”,以便用户返回到上一页,“Ctrl+Shift+R”自动完成。是否有一个角度的方式来做这一切的网页。我看了看: 但不确定如何在Angular中实现它并将其应用

我有一个Angular 8应用程序,有100多个页面(组件),我只使用Chrome浏览器的应用程序。当我点击浏览器后退按钮时,CSS会随机失真,我必须按Ctrl+Shift+R才能正确加载CSS。因此,我正在寻找一种方法,以便在按下浏览器后退按钮时自动执行此操作

因此,当用户单击任何页面上的浏览器后退按钮时,基本上都希望执行“硬重新加载”,以便用户返回到上一页,“Ctrl+Shift+R”自动完成。是否有一个角度的方式来做这一切的网页。我看了看:


但不确定如何在Angular中实现它并将其应用于所有页面。有什么帮助吗?

您可以使用一个通用服务在组件之间进行通信

import { Injectable } from '@angular/core';
import { BehaviorSubject } from 'rxjs';
@Injectable()
export class BackServiceService  {   
  constructor() { } 
  private paramSource = new BehaviorSubject(false);// inside bracket you can send any type
  sharedData = this.paramSource.asObservable();
  setParam(param:boolean) { this.paramSource.next(param)}    
}
在带有hostlistener的组件中,如果单击“上一步”按钮,则可以侦听,然后更改服务值

 @HostListener('window:popstate', ['$event'])
  onPopState(event) {
    console.log('Back button pressed');
    this.back.setParam(true);
  }
在组件u返回中,您可以检查服务值和

this.back.sharedData.subscribe(result => {
      console.log(result);
      if (result) {
        window.location.reload(true);
        this.back.setParam(false);
      }
    });

谢谢你的帮助。所以我必须在所有的100+组件中这样做?这不能在共享服务中完成,只需在按下“后退”按钮时呼叫服务吗?如果您只在app.component.ts中输入最后两个代码,它应该可以工作。因为所有组件都来自app.components。