我想知道如何检测到从浏览器点击后退按钮。
我有以下情况。在我的网站上,我有一个搜索表单。当您执行两个搜索操作,然后单击后退按钮时,我的下拉框的值未正确存储。
想象一下,您首次搜索关键字,然后按标题搜索。现在,当您单击后退按钮时,您会看到关键字的结果,但在下拉列表中,标题仍然可见。我希望关键字在下拉列表中可见。
在我的会话中,我存储了搜索类型。所以这就是为什么我想知道如何强制在浏览器后面按一个page_load。
当我禁用缓存时,我收到此错误消息(IE 7)“网页已过期”
PS:我已经阅读了这个帖子,但它没有回答我的问题(Forcing page refresh on click of back button)
答案 0 :(得分:1)
也许您正在寻找错误的解决方案(ASP.NET解决方案而不是浏览器解决方案)。我认为控件显示的方式是因为浏览器试图提供帮助:
如果这真的困扰你,你可以吐出一些JavaScript来在页面加载时更改所选值。当然,如果您在更改该值时进行自动回发,则可能会引入另一个问题。
答案 1 :(得分:0)
另一个解决方案是在服务器端生成一个唯一的JavaScript变量(例如,GUID),并通过注册的脚本将其写入页面。接下来,在每个页面加载时,您将检查是否存在具有相同变量集的cookie,如果有,您可以放心,您正在查看缓存页面,并且您应该强制重新加载。否则,将变量存储到同一个cookie中以进行下一次加载。