如何通过 URL 更改而不是页面重定向进行 ajax 加载?
Posted
技术标签:
【中文标题】如何通过 URL 更改而不是页面重定向进行 ajax 加载?【英文标题】:How to do ajax loading with URL change but not page redirection? 【发布时间】:2012-11-30 08:51:38 【问题描述】:如果您仔细注意 facebook,您会明白,当您访问一个页面到另一个页面时,整个页面不会刷新或重定向,但导航时 URL 会发生变化到新页面。 当聊天窗口打开时更清楚,它们在页面加载期间保持静态。正如其他网站使用 # 但 facebook 不使用。
我想到了另一个例子:http://www.davidwalsh.name/。访问该网站并打开他们网站中的其他页面,您就会明白我的意思。不要忘记注意网址更改。
他们是怎么做到的?
添加更多:我想要一种使用 ajax 加载页面内容的方法,更改书签功能的 URL,但是在更改 URL 时,它不应该通过不使用 #(哈希)重新加载/刷新页面。
【问题讨论】:
对于 Facebook,谷歌“哈希导航 ajax”。对于 DavidWalsh,谷歌“历史 API”。 伟大的@andytuba...谢谢你的朋友!这就是我想要的。当您对此发表评论时,我无法接受答案:( 不用担心,很高兴它对您有所帮助。也许复制意大利面并“回答我自己的问题”只是为了添加复选标记? 【参考方案1】:正如@andytuba 建议的那样
对于 Facebook,谷歌“哈希导航 ajax”。
对于 DavidWalsh,谷歌“历史 API”。
【讨论】:
【参考方案2】:你有两个问题:
对于 URL 更改,您可以将路径而不是 # 放在锚的 href 属性中(例如 /otherlink)。
打开聊天或打开某些 div 不需要在 url 中发送它,它是 div 上的 onclick 事件及其展开。此外,聊天保持打开状态可能是第一次打开聊天时设置的 cookie 或标志,并检查和更改聊天与他们设置的标志。
【讨论】:
感谢@Tariq 的回复。但我很抱歉你不明白我想问什么。我想要一种使用 ajax 加载页面内容的方法,更改书签功能的 URL,但是在更改 URL 时它不应该重新加载/刷新页面。您所说的方式只会让我在页面重定向到另一个页面时保持相同状态,这不是我的问题。 我的理解是你想用 ajax 加载一些内容,而不是用锚刷新页面。所以使用 return false;在锚点的 onclick 事件上。你可以使用 链接以上是关于如何通过 URL 更改而不是页面重定向进行 ajax 加载?的主要内容,如果未能解决你的问题,请参考以下文章