【问题标题】:How does this site change the site location?该站点如何更改站点位置?
【发布时间】:2011-08-09 18:39:31
【问题描述】:

http://www.beatport.com

他们是怎么做到的?

他们正在更改浏览器中的 url,而不使用像 # 这样的哈希字符和类似的东西。无需刷新,只需 ajax :|

网址看起来像普通网址, 您可以直接从主页转到 http://www.beatport.com/genre/psy-trance/13 不刷新页面

【问题讨论】:

  • 它在加载后以beatport.com/#genre/psy-trance/13 结束(是的,# 在那里)。页面上的其他链接也是如此。将鼠标悬停在它们上方时,# 未显示,但在单击/加载链接后,# 位于该位置。
  • 它不存在!!1 :D 所有链接都正常,没有# 和网址也是如此。这是黑魔法还是什么?
  • 这取决于您的浏览器是否支持 HTML5 History。尝试使用一些旧的 IE 或 FF 3.6> 来查看哈希值。
  • 我正在使用 Opera。还有哪些浏览器支持 html5 历史记录?
  • 它在 IE10 的 url 中添加了一个 #,但在 FF4 上没有

标签: javascript ajax url location


【解决方案1】:

您可以使用 History API 来做到这一点。

http://diveintohtml5.ep.io/history.html https://developer.mozilla.org/en/DOM/Manipulating_the_browser_history

【讨论】:

  • 这很恶心......现在没有理由不使用 ajax 来处理所有事情
  • 当然有。它只是更改位置 url。它不会为您加载新页面。您仍然需要使用 Ajax 来获取新内容并将其附加到页面。它只是解决了 AJAX 网站上的后退按钮问题。
  • 是的,但这是 ajax 的唯一问题。现在它已经消失了,所以你可以使用 ajax 来获取新页面。我要实时(点击)我所有的链接,并用目标页面中的那些替换所有正文元素:)
  • 如果您不需要支持 iE,请随意
【解决方案2】:

他们可能正在利用HTML 5 History API

【讨论】:

    【解决方案3】:

    更正我之前的答案,请参阅Modify the URL without reloading the page。请参阅第二个答案。

    【讨论】:

    • 这会产生 JS 刷新。
    猜你喜欢
    • 2015-04-27
    • 1970-01-01
    • 2013-11-30
    • 2021-05-30
    • 2011-06-09
    • 2012-02-09
    • 2014-05-04
    • 2020-08-27
    • 2019-11-08
    相关资源
    最近更新 更多