-2

至于我的谷歌搜索。我发现以下内容script可以让我back button在大多数浏览器中处理,但不是全部

<script type="text/javascript">
    window.history.forward();
    function noBack() { window.history.forward(); }
</script>

<body onload="noBack();"
    onpageshow="if (event.persisted) noBack();" onunload="">
</body>

所有浏览器是否有任何通用解决方案来处理此问题?我听说设置超时之类的东西会做,但不知道如何在上面的脚本中使用它。

为什么我需要处理它

我有一个产品购物车页面,用户可以在其中将add/delete/edit产品放入购物车。如果用户选择任何产品,他将被重定向到产品信息页面。

在产品购物车页面(add/delete/edit)上,如果用户删除特定产品并按下后退按钮,我希望他留在当前页面上,因为产品已从购物车中删除。但是使用浏览器缓存用户仍然会被重定向到产品信息页面,这就是错误就我而言。

编辑:

所有三个操作(add/edit/delete)都是asych AJAX调用的。但是用户可以从任何页面重新访问他的购物车。

假设用户

  1. selects来自product cart页面的产品。
  2. 进入页面redirected_product details
  3. 点击product cart链接再次进入产品购物车
  4. deletes购物车中的产品
  5. 压力机back button

这是真正的问题开始。

4

1 回答 1

0

您需要为执行此类操作定义一些逻辑,例如,如果我从 pag1 转到 page2 ,那么通过您的代码,我无法使用后退按钮返回 page1 ,但是您的解决方案存在两个问题:

  1. 用户可以禁用 javascript
  2. 用户可以将 page1 url 复制到地址栏中。

如果您试图控制某些身份验证或登录访问或类似的事情,您必须使用会话。顺便说一下你为什么要这样做,那么可能有服务器端解决方案(比js更容易处理)

于 2013-10-10T05:26:05.297 回答