背景:最近在做微信点餐,在菜单列表把菜品添加到购物车,添加菜品时我用javascript局部刷新,点击按钮跳转查看我添加的所有菜品,然后我再次点击微信的返回按钮,会发现我之前点的菜都没有了。这样的结果会给用户造成一个假象,我的菜并没有添加到购物车。
说白了就是由子页面返回父页面时没有刷新父页面。
解决方法:
首先我考虑用JS去监控返回按钮事件,然后发现JS并不能监控返回按钮
然后我采用window.onpopstate的事件
代码:
<script type="text/javascript" >
window.onpopstate = function (event) {
if (event.state == null) {
window.location.href = "prolist.aspx?type=" + type + "&categoryId=" + categoryId + "&img=" + img;
}
};
//绑定事件处理函数.
history.pushState({ page: 1 });
history.pushState({ page: 2 });
history.back();
history.back();
</script>
点击返回按钮,这样就能够刷新prolist.apsx页面