首页 > 解决方案 > 我想在 onpopstate 事件上写一些代码而不刷新页面

问题描述

我正在为电子商务网站创建搜索页面,我们可以在其中按创建动态 URL 的不同方面进行搜索,并且我只刷新视图而不刷新页面。现在,如果用户按下浏览器的来回按钮,我只想用相关数据重新加载视图而不重新加载页面。我正在使用下面的代码来捕获来回按钮事件但它会自动重新加载页面。

有什么办法可以防止这个页面刷新吗?

window.onpopstate = function (event) {
    console.log("pop!");
    window.getProducts();
    window.getArticles();
    event.preventDefault();
    event.stopImmediatePropagation();
};

标签: javascriptjqueryuser-interface

解决方案


您可以使用 h5 历史记录来更改 url,像这样

window.history.pushState('', '','about');

并将 popstate 侦听器添加到窗口。


推荐阅读