【问题标题】:Ajax navigation/browser backAjax 导航/浏览器返回
【发布时间】:2012-12-25 16:31:36
【问题描述】:

需要在不重新加载任何页面的情况下实现 ajax 导航 我正在将 html 写入 ajax 容器 div。 是否有任何解决方案来处理浏览器后退和前进事件。还添加到书签? 我需要涵盖所有浏览器,包括 IE 8 及更高版本。谢谢

【问题讨论】:

  • 你能再清楚一点,把你的问题分开吗?另外,what have you tried??
  • 我有一个带有顶部菜单链接的 html 页面。在链接单击事件中,我正在使用适当的 html 内容更改 ajax-container div,并使用 hostname#?page=blabla(使用 jQuery)更改地址栏中的 url。使用这样的实现浏览器后退和前进按钮不会分叉(实际上 window.history.back 也不起作用),我正在尝试找出正确的解决方案。

标签: javascript jquery ajax browser


【解决方案1】:

浏览器历史记录通常仅在浏览器加载新页面时更新。 AJAX 不会替换页面,所以历史不会改变。

HTML5 添加了一个 API 以允许 Javascript 直接更新历史记录,即 history.pushState()history.replaceState() 方法。您的 AJAX 代码应该能够使用 pushState() 将旧 URL 添加到浏览器历史记录中,因此后退按钮将起作用。有关血腥细节,请参阅the HTML5 spec

由于这是相对较新的,较旧的浏览器将不支持它。您可以将jQuery BBQ Plugin 用于跨浏览器应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多