【发布时间】:2022-10-23 21:23:16
【问题描述】:
我有一个单页应用程序,想使用浏览器的后退和前进按钮浏览历史记录。当我单击后退按钮时,我遇到了一个问题,一旦它没有导航到上一页但停留在当前页面上。然后,当我再次单击浏览器时,它会将我带到上一页。我已经尝试了以下内容。
class PageModule {
constructor() {
window.addEventListener("popstate",function(){
this.handleHistory(true);
}.bind(this),false);
}
handleHistory(popStateEventFired = false){
if(popStateEventFired){
history.replaceState();
}else{
history.pushState(null,null);
}
history.pushState(null,null);
}
当我发出搜索时,我将搜索参数作为查询参数添加到 url ?question=testsearch 并调用方法 handleHistory()。我已经检查了类似问题的其他答案,但它们似乎没有帮助。
我必须使用 vanilla javascript 或 knockoutjs 来执行此操作,因为我们使用 knockoutjs 维护 HTML 绑定,但无法正确实现此目的。
任何帮助表示赞赏
【问题讨论】:
-
如何结束这个问题?我找到了根本原因,我的问题是由于执行不正确
标签: javascript html knockout.js