jquery - 带有 window.history.pushState 和后备的跨浏览器 jquery ajax 历史记录

标签 jquery ajax browser-history

我想使用 jQuery 和 AJAX 以跨浏览器的方式实现导航历史记录。我的方法是使用window.history.pushState并回退到哈希 url /#!/url在不支持window.history.pushState的浏览器中。

例如:

<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 .

最佳答案

// Assuming the path is retreived and stored in a variable 'path'

if (typeof(window.history.pushState) == 'function') {
    window.history.pushState(null, path, path);
} else {
    window.location.hash = '#!' + path;
}

关于jquery - 带有 window.history.pushState 和后备的跨浏览器 jquery ajax 历史记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4250553/

相关文章:

jquery - 如何在jquery mobile中使用window.location()?

javascript - 不光滑的方法不起作用

sqlite - Safari History.db history_visits.visit_time 是什么格式?

javascript - 使用 JavaScript 操作 session 历史记录

jquery - ajax 成功函数未触发 MVC

javascript - 绑定(bind) popstate 事件的不同方法

javascript - div淡入时改变背景颜色

javascript - jquery中使用一个元素的值来查找另一个元素

javascript - 覆盖图像右键单击的上下文菜单

javascript - $.ajax 调用失败,数据类型为 json