几个月前,我看到在 vkontakte.ru(俄罗斯 FB)上部署了一项新功能: 在用户页面之间切换时,不会发生浏览器重新加载。相反,新页面会被预加载,然后显示。页面上的音乐播放器(固定在页脚顶部)继续播放,不间断。
但是,浏览器地址栏中的 url 发生变化,而不是通过哈希标记或查询字符串。
所以,我的页面是 vk.com/myPage...我点击一个 friend ,他的页面预加载,然后显示,此时浏览器地址栏中的 URL 更改为 vk.com/myfriendJoe,并且没有浏览器重新加载.
请注意,它仅适用于最新版本的 Safari 和 Chrome 等最新版本的浏览器,对于 Firefox 3.6 等其他浏览器,它实现了使用主题标签和查询字符串的回退。
我做了一些研究并找到了 window.history.pushState
,但它似乎只适用于查询字符串。
任何想法将不胜感激。谢谢。
最佳答案
这是新的 history API由 HTML5 定义。可以看另一个demo here .你说得很对,是 pushState
做的,但它不只处理查询字符串(正如该页面所展示的那样,它使用根相对 URL,如 /history/first
和 /history/second
)。
关于javascript - Facebook 如何在不重新加载页面或不使用# 或的情况下更改浏览器地址栏中的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6794006/