【问题标题】:Prevent page redirect when using hash tag使用哈希标签时防止页面重定向
【发布时间】:2011-09-09 08:26:18
【问题描述】:

有没有办法将页面重定向到特定的哈希值,但如果页面重新加载时已经存在哈希值,则会阻止重定向?最好用javascript?

例如:

输入 www.mysite.com 会重定向到 ---> www.mysite.com/index.html#news

然后用户单击一个链接,该链接导航到同一页面下方的新位置:www.mysite.com/index.html#articles

我想要的是在刷新时阻止重定向,这样如果用户刷新页面,他们就会留在#articles,而不是被重定向回#news。

基本上,重定向的唯一目的是仅当输入的 url 没有使用哈希 (#) 时,才会将人们带到 #news。

【问题讨论】:

    标签: javascript redirect hashcode


    【解决方案1】:

    您可以检查window.location.hash 属性并根据其值设置位置href。例如:

    <script type="text/javascript">
      // Redirect to "#news" if there is no hash in the URL.
      if (window.location.hash == '') {
        window.location.href = 'http://www.mysite.com/index.html#news';
      }
    </script>
    

    顺便说一句,您似乎可以使用window.location 或document.location,它们似乎可以做同样的事情。 It is unclear which is the preferred target(窗口或文档)。

    【讨论】:

      【解决方案2】:

      锚重定向是一种仅限客户端的结构。服务器完全不知道有人点击了“#articles”这一事实——而且当他们这样做时,URL 不会改变,所以刷新总是会让你回到让你到达那里的同一个 URL。

      解决方案是在他们单击锚链接时重写 URL。您可以通过分配给window.location.href 来更改它。因此,将点击处理程序添加到任何哈希锚,并更改 URL 以包含新的页内锚标记。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-03-31
        • 2013-03-12
        • 1970-01-01
        • 2018-02-03
        • 2011-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多