【问题标题】:back button in ajax supported pagesajax 支持页面中的后退按钮
【发布时间】:2011-11-30 10:01:34
【问题描述】:

我有一个主 php 页面,现在我正在使用 ajax 在这个主页面的 div 中加载不同的页面。现在我想在从属页面上添加一个后退按钮,以便 div 可以加载其上一个从属页面,但我正在使用的后退按钮使用 history.go(-1) 让我远离母版页。有没有人有任何解决方案。提前致谢。

我使用的代码写在下面。但它不适用于 ajax 页面

<a href="javascript:history.go(-1)">Go back</a>

【问题讨论】:

  • 你可能想看看历史插件
  • 您是否尝试使用带有 '#' 的链接?即,如果您单击将您带到另一个从属页面的链接,它将转到 your.site.com/page.php#slavename 。我相信这将启用 history.go(-1),因为您的 URL 每次都会更改。

标签: php jquery ajax history back-button


【解决方案1】:

我的建议是为此目的使用一个框架,例如 backbone.js

您可以像在服务器端一样设置路由。

我觉得这是在 ajax 网站上执行此操作的最佳方式。

【讨论】:

  • 您建议对应用程序的架构进行重大更改,以实现相当简单的功能。这不是矫枉过正吗?
  • 是的,但从长远来看,如果应用程序完全是 ajax,那将是非常有益的
  • “这不是矫枉过正吗?” ..尤达?
  • @Tim:我相信尤达会说“Overkill that is”或“Overkill is not that?”。我的“这不是矫枉过正吗?”意思是“对于一个简单的任务来说,这不是太多的代码吗,bro?”。在what overkill means 上查看更多信息。
  • @GautamK:你可能是对的,但从长远来看,为简单的任务实现整个库并不是一个好主意。要实现任何库,他首先需要有充分的理由。 See this (caution: it is funny) about JS libraries / frameworks used for a simple task
【解决方案2】:

阅读tutorial on Manipulating browser history

它提到:

  • pushState用于在浏览器的历史记录中创建“条目”(带有有关状态的附加数据),允许返回到您之前保存的某些特定状态,
  • onpopstate 事件,当您在浏览器的历史记录中来回切换时触发,并传递先前为特定历史条目保存的信息(因此您实际上可以读取先前由 pushState 保存的数据对于此特定条目),

如果pushStateonpopstate 不适合你,在onhashchange 事件的基础上仍有一些工作能力(但有限)。

好消息是,您想要实现的目标绝对是可能的。它甚至在 Twitter、GitHub、Facebook 等许多著名网站中实现。

【讨论】:

    【解决方案3】:

    您可以使用较新浏览器中提供的历史记录功能。有几个库已经为您提供了功能:

    对于 JavaScript MVC 应用程序:

    http://documentcloud.github.com/backbone/#History

    对于移动网页:

    http://jquerymobile.com/demos/1.0b1/#/demos/1.0b1/docs/pages/docs-navmodel.html

    为了实现自己的解决方案:

    http://benalman.com/projects/jquery-hashchange-plugin/

    【讨论】:

      猜你喜欢
      • 2010-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-08
      • 2013-12-05
      相关资源
      最近更新 更多