相关疑难解决方法(0)

如何检测浏览器后退按钮事件 - 跨浏览器

你如何明确地检测用户是否按下了浏览器中的后退按钮?

如何使用#URL系统在单页Web应用程序中强制使用页内后退按钮?

为什么地球上没有浏览器按钮触发他们自己的事件!?

javascript cross-browser back single-page-application

188
推荐指数
11
解决办法
42万
查看次数

window.onpopstate,event.state == null?

所以我已经在stackoverflow上阅读了几个问题/答案并搜索了问题,我似乎无法得到event.state回来以外的任何东西,但 event.state

我知道它不适用于jQuery事件,但当我做这样的事情时:

window.onpopstate = function (e) {
     console.log(e.state)
}
Run Code Online (Sandbox Code Playgroud)

随着jQuery.ajax成功调用的东西

history.pushState({ lastUrl: data.State }, data.Title, data.UrlKey);
Run Code Online (Sandbox Code Playgroud)

Chrome(v19)或Firefox(v12)都不会返回任何空值?我错过了什么吗?它没有完全实现吗?

html javascript dom-events

38
推荐指数
2
解决办法
2万
查看次数

如何检测用户是否单击了"后退"按钮

当用户进入历史回溯1时...如何检测到?然后,提醒"用户点击回来!"

使用绑定(最好是jquery)

javascript jquery back-button jquery-events

17
推荐指数
3
解决办法
6万
查看次数

ReactJs浏览器“后退”按钮

我正在使用Reactjs。我想警告用户单击后退按钮。我所做的是

handleWindowClose = (ev) => {
  ev.preventDefault();
  return ev.returnValue = 'Leaving this page will loose data';
}

componentDidMount = () => {
    window.addEventListener('beforeunload',this.handleWindowClose);     
}

componentWillUnmount = () => {
    window.removeEventListener('beforeunload',this.handleWindowClose);
}
Run Code Online (Sandbox Code Playgroud)

但是,这与单击后退按钮不起作用。所以我尝试这样做

handleWindowClose = (ev) => {
        ev.preventDefault();
        return ev.returnValue = 'Leaving this page will loose data';        
}

onBackButtonEvent = (e) => {
    e.preventDefault();
    if(confirm("Do you want to loose this data")){
    window.history.go(0);
    }else {
    window.history.forward();
  }
}

componentDidMount = () => {
    window.addEventListener('beforeunload',this.handleWindowClose);     
    window.addEventListener('popstate',this.onBackButtonEvent);
}

componentWillUnmount = () => { …
Run Code Online (Sandbox Code Playgroud)

reactjs

7
推荐指数
2
解决办法
1万
查看次数