Javascript 如何通过浏览器返回按钮处理用户到达页面? 用户访问页面A并点击几次,在他/她移动时调整页面状态 页面A最终将用户重定向到页面B 用户单击浏览器后退按钮,在浏览器中再次看到页面A
我需要在步骤3中执行一些界面清理Javascript 如何通过浏览器返回按钮处理用户到达页面? 用户访问页面A并点击几次,在他/她移动时调整页面状态 页面A最终将用户重定向到页面B 用户单击浏览器后退按钮,在浏览器中再次看到页面A,javascript,jquery,asp.net,Javascript,Jquery,Asp.net,我需要在步骤3中执行一些界面清理 如何在页面A中捕获此事件 除了可能设置cookie之外,由于浏览器安全性限制,您不能设置cookie。解决方法是检查用户是否通过onbeforeunload或onunload fire离开页面。在您的场景中,是否可以使用URL哈希导航到页面B,并使用AJAX和jQuery加载新页面?因此,浏览器实际上并没有离开页面。当用户返回时,他们所要做的就是更改URL哈希。然后,您可以捕获hashchange事件,查看用户是否已导航回页面A。我将做一些假设,以提供一种不完全
如何在页面A中捕获此事件 除了可能设置cookie之外,由于浏览器安全性限制,您不能设置cookie。解决方法是检查用户是否通过onbeforeunload或onunload fire离开页面。在您的场景中,是否可以使用URL哈希导航到页面B,并使用AJAX和jQuery加载新页面?因此,浏览器实际上并没有离开页面。当用户返回时,他们所要做的就是更改URL哈希。然后,您可以捕获
hashchange
事件,查看用户是否已导航回页面A。我将做一些假设,以提供一种不完全依赖javascript的方法:
注意:这可能不像听起来那么优雅。在很多情况下,浏览器可能不会在按下后退按钮后从服务器中实际提取新页面。如果测试显示这是一个问题,您可能需要使用一些AJAX技术来填充按下后退按钮后JS的新信息。这里有一篇类似的文章介绍了使用jQuery和后退按钮:Connel,我喜欢这个想法,但我认为我们的web应用程序对于这种方法来说太重了。这是DotNetNuke内的一款电子商务应用程序,带有ASP.NET Web FormsAh,但始终值得推荐!你试过@Rionmonster在帖子中提出的公认答案吗?还没有,需要一些时间来分析。看起来我是hamlin11的javascript高手。Rionmonster链接中的方法的问题在于,除了在第一页加载时,它只允许在按下back之后执行onload代码。我们需要一些只在按下“后退”按钮后才执行的东西。那么,我们来扩展一下我的解决方案。有点作弊(但是,有时候没有一个完美的解决方案!),但有一种可能是更改PageB onload的哈希标记,当按下back按钮时,您可以捕获此哈希更改,然后使用JavaScript强制浏览器再次导航回PageA。您可以在这个函数中执行任何需要执行的操作,或者如果是服务器端,您可以将查询字符串中的某些内容传递回页面A。