如何在不更改页面的情况下更改内容(非散列 URL)?

Posted

技术标签:

【中文标题】如何在不更改页面的情况下更改内容(非散列 URL)?【英文标题】:How do I change content without changing pages (non-hashed URLs)? 【发布时间】:2012-10-11 18:58:16 【问题描述】:

我知道如何使用 AJAX 更改页面内容和远程加载内容。但是,请查看UStream's new layout。单击任何视频,不仅内容会发生变化,但页面本身不会发生变化……而且整个 URL 也会发生变化。这是怎么做到的?

我知道如何在 URL 中使用主题标签,并使用 javascript 来检测位置的哈希值何时发生变化。例如,site.com/#!/profilesite.com/#!/settings。远程加载#! 部分之后的任何值。

但 UStream 根本不使用井号。这是如何实现的?这里有什么巫术?

【问题讨论】:

试试:github.com/aFarkas/history.js @JaredFarrish 那个分叉比原来的好? @alex - 嗯,是的,当然。这个? github.com/balupton/history.js你是在设置我吗? @alex - 你在吗?您只是指出我没有指出源头,还是您对指向 aFarkas 分叉的链接有实际问题? @JaredFarrish 完全没问题。我只是好奇它是否被推荐而不是原版(也许我错过了一些讨论)。 【参考方案1】:

您看到的是html5 History API。

【讨论】:

这似乎是这些网站最有可能采用的方法。很高兴知道这是一个 HTML5 功能。谢谢!

以上是关于如何在不更改页面的情况下更改内容(非散列 URL)?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不刷新页面的情况下更改路线和内容? (机器人友好)

如何在不重新加载页面的情况下更改 URL?

如何在不重新加载页面的情况下从 FF Web 扩展内容脚本更改 3rd 方网站上的 Angular 应用程序路由/URL

如何在不更改当前 URL 的情况下显示错误页面

如何在不更改浏览器历史记录的情况下更改 url

如何在不更改 javascript 中的 URL 的情况下重新加载当前页面一次?