如何通过 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 加载?的主要内容,如果未能解决你的问题,请参考以下文章

如果匿名用户无权访问 URL,如何将他们重定向到自定义页面而不是登录页面?

在Wordpress上发布保存后更改重定向URL

jquery:更改URL地址而不重定向? [复制]

.htaccess:重定向而不更改 url

使其只能通过重定向访问 url

Spring 安全更改重定向 URL 以使用 HTTPS 而不是 HTTP