使用浏览器的后退按钮时删除/禁用javascript

时间:2009-04-16 18:07:59

标签: javascript

我有一个由两个框架组成的页面:一个是flash应用程序,另一个是带有用户控件的aspx页面,其中包含一个带有几个“添加到购物车”按钮的网格。当用户点击按钮时,我想用购物车页面重新加载整个窗口。

我通过避免使用response.redirect并使用response.write插入一些重定向的javascript,很好地了解了如何here。问题是当用户从购物车页面点击后退按钮时,脚本再次执行,有效地取消后退按钮。 (糟糕的可用性)

所以我的问题是,有没有办法检测用户是否通过后退按钮到达页面并避免执行脚本?

3 个答案:

答案 0 :(得分:11)

更改您的javascript以替换当前网址,而不仅仅是设置

// Creates browser history
top.location = 'http://www.stackoverflow.com'

// Doesn't create browser history
top.location.replace( 'http://www.stackoverflow.com' );

答案 1 :(得分:2)

  

当用户点击按钮时,我想用购物车页面重新加载整个窗口。

您应该使用Post-Redirect-Get模式。

答案 2 :(得分:2)

您可以在不使用脚本的情况下轻松完成此操作,方法是使用target属性_top的表单中的按钮提交按钮。请注意,target属性不会验证为HTML4或XHTML。

如果您使用POST请求提交到购物车(一个好主意),那么bobince提到的Post-Redirect-Get惯用法将进一步加强您的应用程序 - 如果用户不会被提示重新提交表单他们使用后退或前进按钮进入您的购物车页面。