最近项目开发中,遇到一个问题,进入项目的某个模块后,要求不能通过浏览器的后退退出该模块或退出该模块之前,需要进行提示操作。
原来尝试按第二种结果来做,其中一个方法是利用元素的生命周期 beforeunload
;但该周期对浏览器的后退操作并不起作用(由于在插件中开发,插件里可以正常操作,但嵌入到主项目时失效,暂时原因没找到), 只对浏览器的刷新按钮起作用。
所以尝试第一种结果。
以上都是废话;下面才是重点(hahaha)
禁用浏览器后退功能的方法: 代码如下(实测有效):
function handleHistoryBack() {
window.history.pushState(null, null, document.URL);
}
window.history.pushState(null, null, document.URL);
window.addEventListener("popstate", this.handleHistoryBack);