重定向到其他页面并滚动到指定的元素,而不在URL中显示id

时间:2018-06-20 12:23:43

标签: html redirect anchor id

由于this的答案不能真正回答问题,因此this仅适用于同一页面;

如何将用户重定向到另一个页面(来自同一域),并在单击anchor标签时滚动到指定的元素,而不显示{{1} }中的网址?

我不需要任何平滑的动画,并且如果可能的话我想在没有JS / jQuery的情况下做到这一点。

1 个答案:

答案 0 :(得分:0)

我认为这是最简单的解决方案。您检查最后一个URL,如果匹配,则使用JS计算元素的位置并滚动到该位置。

var fromUrl = document.referrer

if (fromUrl === "http://www.fromWhereImComming.com/site") {
  var position = document.getElementById('nav-tags').getBoundingClientRect().height
  scroll(0, position)
}

如果您有更多网址,则需要2个脚本。 引用页面上的一个,您要将变量保存到本地存储。 您需要将其绑定以链接到某些内容,例如,使用简单的onclick

<a href="" onclick="saveToLocalStorage()">link</a>
<script>
    function saveToLocalStorage(){
        localStorage.setItem("scroll", "true")
    }
</script>

第二种方法与第一种方法类似,只是检查url,检查本地存储,使用并清理它。

<script>
    var isScroll = localStorage.getItem("scroll");

    if (isScroll === "true") {
      var position = document.getElementById('nav-tags').getBoundingClientRect().height
      scroll(0, position)
      localStorage.removeItem("scroll")
    }
</script>