【发布时间】:2011-05-14 03:03:48
【问题描述】:
我想以跨浏览器的方式使用 jQuery 和 AJAX 实现导航历史。我的方法是在不支持 window.history.pushState 的浏览器中使用 window.history.pushState 并回退到哈希 URL /#!/url。
例如:
<a href="/home">home</a>
<a href="/about">about</a>
<a href="/contact">contact</a>
在支持window.history.pushState的浏览器上,点击这些链接之一应该在不刷新页面的情况下将地址更改为http://domain.com/home、http://domain.com/about等。当浏览器不支持window.history.pushState时,它应该使用片段标识符,即:http://domain.com/#!/home,http://domain.com/#!/about。
更新:根据此处的反馈,我实现了Ajax SEO (git),它使用
jQuery Address 用于 HTML5 History API,旧浏览器回退到 /#!/url。
【问题讨论】:
-
我在想,如果你需要支持不支持pushState的浏览器,为什么不对所有浏览器使用hash url方法呢?除了“正确性”之外,pushState 还有什么优势可以弥补支持多种方法的复杂性?
-
@DavidHammond,这是github.com/laukstein/ajax-seo直接支持的。
标签: jquery ajax browser-history