处理浏览器后退按钮最干净的方法

时间:2013-10-10 05:10:39

标签: javascript html

至于Google Seaches。我发现关注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来电。但用户可以从任何页面重新访问购物车。

让我们说用户

    来自selects页面的
  1. product cart产品。
  2. 获取redirectedproduct details页面
  3. 点击product cart链接再次转到产品购物车
  4. deletes购物车中的产品
  5. back button
  6. 以下是真正的问题。

1 个答案:

答案 0 :(得分:0)

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

  1. 用户可以禁用javascript
  2. 用户可以将page1网址复制到地址栏中。
  3. 如果您尝试控制某些身份验证或登录访问或类似的任何内容,则必须使用会话。顺便说一句你必须说为什么要这样做,那么可能有服务器端解决方案(比js更可治疗)