浏览器后退按钮asp.net

时间:2012-01-30 13:26:37

标签: javascript asp.net back-button

我正在实施基于网络的系统。如果按下浏览器的后退按钮,我需要捕获。如果按下后退按钮,它不会回发。我见过一些代码部分,但它没有解决我的问题。我有一个主页。如果点击浏览器的后退按钮,我想回发我的主页。

更清楚 - >主页 - > x.aspx?日期= 30.01.2012,我把日期放到会话中,然后是浏览器的后退按钮,主页????在那里,我想通过回发主页来从会话中获取日期。

window.history.go(-1) 

4 个答案:

答案 0 :(得分:2)

由于以下几个原因,这不是一个容易解决的问题:

  • 缓存在不同浏览器上的行为方式不同
  • 您将干扰自然的UI交互,这是不明智的
  • 这可能是一个设计问题

我不会因为这些原因尝试这个,而是从不同的角度看问题(例如,这是一个设计问题吗?)

对于它的价值,我认为这可能达到一定程度,但对于它试图解决的任务而言将是一个过于复杂的解决方案,并且将来很难调试/维护。

答案 1 :(得分:0)

我猜你正试图避免用户返回并重新提交表单的情况。您可以使用POST/REDIRECT/GET(PRG)模式来避免检测后退按钮的使用。处理完表单提交后,请重定向到您想要访问的页面。

答案 2 :(得分:0)

您可以尝试使用ScriptManagerEnableHistory属性设置为true。

<asp:ScriptManager ID="ScriptManager1" runat="server"
    EnableHistory="true" />

MSDN上的一篇文章描述了这一点:http://msdn.microsoft.com/en-us/library/ie/cc488548.aspx

答案 3 :(得分:0)

如果你想在其中一个页面上禁用后退按钮,请尝试使用以下javascript

function noBack(){window.history.forward(); }

&安培;在你的身体标签写下

&lt; BODY onload =“noBack();”     onpageshow =“if(event.persisted)noBack();” onunload的= “” &GT;

这肯定会解决你的问题。

快乐编码!!