使用浏览器时删除/禁用javascript';s后退按钮

使用浏览器时删除/禁用javascript';s后退按钮,javascript,Javascript,我有一个由两个框架组成的页面:一个是flash应用程序,另一个是带有用户控件的aspx页面,其中包含一个带有几个“添加到购物车”按钮的网格。当用户单击一个按钮时,我想用购物车页面重新加载整个窗口 通过避免response.redirect,并使用response.write插入一些重定向的javascript,我发现了如何很好地做到这一点。问题是,当用户从购物车页面点击后退按钮时,脚本再次执行,有效地取消了后退按钮。(可用性差) 所以我的问题是,有没有一种方法可以检测用户是否通过“后退”按钮到达

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

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


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

更改javascript以替换当前URL,而不仅仅是设置它

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

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

更改javascript以替换当前URL,而不仅仅是设置它

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

// Doesn't create browser history
top.location.replace( 'http://www.stackoverflow.com' );
当用户单击一个按钮时,我想用购物车页面重新加载整个窗口

你应该使用这个模型

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


您应该使用该模型。

无需使用脚本即可轻松完成此操作,方法是使按钮以带有
目标属性
\u top
的表单提交按钮。请注意,
target
属性将不会验证为HTML4或XHTML


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

通过使按钮以带有
目标的表单提交按钮,无需使用脚本即可轻松完成此操作
\u top的属性
。请注意,
target
属性将不会验证为HTML4或XHTML


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

可用性差
,在同一个问题中使用框架和flash应用程序?为什么在基本页面中使用JavaScript航行正如安德鲁·达菲(Andrew Duffy)所提到的,“target”属性就是为了这个目的。@alex——仅仅因为帧和flash通常被认为是糟糕的设计,使用过度,使用不当,并不意味着它们没有合法的用途@Calvin——基本导航需要javascript的原因是,在我的代码中使用Response.Redirect时,无法指定目标,因为这都是由客户端处理的。因此,在为我执行重定向的页面上编写脚本可以让我指定一个目标。我只会因为它们的可访问性问题而称它们为糟糕的设计。首先…
糟糕的可用性
和框架以及flash应用程序在同一个问题上?为什么要使用JavaScript进行基本页面导航?正如安德鲁·达菲(Andrew Duffy)所提到的,“target”属性就是为了这个目的。@alex——仅仅因为帧和flash通常被认为是糟糕的设计,使用过度,使用不当,并不意味着它们没有合法的用途@Calvin——基本导航需要javascript的原因是,在我的代码中使用Response.Redirect时,无法指定目标,因为这都是由客户端处理的。因此,在为我执行重定向的页面上编写脚本可以让我指定一个目标。我只会因为它们的可访问性问题而称它们为糟糕的设计。首先…奇怪的是目标属性被弃用了。帧几乎总是一个坏主意,但是在删除目标属性的同时保留帧/iframe是没有意义的,除非它们也要删除帧。你知道他们的推理吗?我认为这是因为他们认为目标是一种行为,所以它应该被纳入JavaScript。帧几乎总是一个坏主意,但是在删除目标属性的同时保留帧/iframe是没有意义的,除非它们也要删除帧。你知道他们的理由吗?我认为这是因为他们认为目标是一种行为,所以它应该被纳入到JavaScript中。