【问题标题】:SilverStripe - Prevent HTML Bookmarks from returning to homepageSilverStripe - 防止 HTML 书签返回主页
【发布时间】:2016-04-15 06:10:21
【问题描述】:

我一直试图弄清楚如何让传统的 HTML 书签在 SilverStripe 网站上工作。我让它们工作得有些正确,因为它们确实导航到了正确的 div。但是,所有书签都导航到主页上的正确部分,这是不正确的。

例如,我在页脚的每个页面底部都有一个按钮,用于将用户带回页面顶部:

<footer class="footer">
    <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>
    <div class="grid-container">
        <div class="grid-100 mobile-grid-100 tablet-grid-100">
            <h3>Back to top</h3>
              <span class="copyright">&copy; $Now.Year<br></span></div>
    </div><!-- close container -->
</footer>

但是,当单击子页面上的“返回顶部”按钮时,用户会被带到主页的顶部。 “联系我们”部分的链接也会发生同样的事情——您总是会被带回到主页的“联系我们”部分。但这不是我想要的。书签应该让用户留在他们所在的页面上。

我把这行代码放在config.yml文件中:

SSViewer: rewrite_hash_links: false

这阻止了书签被视为网站网址,但这并没有解决所有问题。我可以在 .yml 文件中添加一些内容以防止子页面上的书签返回首页吗?

编辑:禁用 JavaScript 并不能解决问题,因此它与服务器端无关。该问题出现在 Chrome、FireFox、Safari 和 IE 中,因此似乎与浏览器无关。

【问题讨论】:

标签: html anchor silverstripe


【解决方案1】:

据我所知,我相信您需要为您的案例做的只是使用href 中的 div 的ID,这应该会将您带到页面顶部到您拥有 @ 的位置987654324@.

例如

<footer class="footer">
    <a href="#top" class="toTop"><i class="fa fa-angle-up"></i></a>
    <div class="grid-container">
        <div class="grid-100 mobile-grid-100 tablet-grid-100">
            <h3>Back to top</h3>
              <span class="copyright">&copy; $Now.Year<br></span></div>
    </div><!-- close container -->
</footer>

这也称为 HTML 锚链接不是书签:http://www.rapidtables.com/web/html/link/html-anchor-link.htm

【讨论】:

  • 我试过这个,但我遇到了同样的问题——我总是被带回主页。我去了正确的部分,但它总是在主页上。就像锚链接仍然被视为 URL。
  • 重要的一点是,这似乎不是特定于浏览器的,禁用 JS 并不能解决问题。
  • 似乎存在某种未知问题,因为我确实使用 rewrite_hash_links = false 位解决了这个问题。为什么它以前不起作用,我不知道,但现在似乎一切正常。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2013-10-04
  • 2011-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多