简体   繁体   English

在加载 chrome 时触发 onpopstate 事件

[英]trigger on event onpopstate on load chrome

I am dealing with a problem that disable back button on browser, so my approach is using onpopstate event, When page load success, then I click back button on browser, it's not trigger on onpopstate event and still can navigate to previous page, if I do anything in page such as left, right click on page then click back button on browser, it trigger on onpopstate event and prevent back to previous page.我正在处理禁用浏览器上的后退按钮的问题,所以我的方法是使用 onpopstate 事件,当页面加载成功时,然后我单击浏览器上的后退按钮,它不会触发 onpopstate 事件并且仍然可以导航到上一页,如果我在页面中执行任何操作,例如左键单击页面,然后单击浏览器上的后退按钮,它会触发 onpopstate 事件并阻止返回上一页。 this issue just happened on chrome, safari works fine.这个问题刚刚发生在 chrome 上,safari 工作正常。 I tried to many implementation, but it's still not work on chrome browser.我尝试了很多实现,但它仍然不适用于 chrome 浏览器。 Has anyone faced this problem yet?有没有人遇到过这个问题?

ngOnInit(){
   history.pushState(null, null, window.location.href);
   window.onpopstate = ()=>{
       history.go(1);
   }
}

It's possible to use PlatformLocation which has onPopState listener.可以使用具有 onPopState 侦听器的PlatformLocation

import { PlatformLocation } from '@angular/common'

(...)

constructor(location: PlatformLocation) {

    location.onPopState(() => {

        console.log('pressed back!');

    });

}

(...)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM