2013-05-03 83 views
8

我怎么能或者有可能在网页加载的时候这样做,它显示的第一件事就是网页的一部分,你希望这个人首先看到哪个锚标签。如何使页面加载到锚标签?

可能吗?

感谢您提前提供所有帮助。

回答

4

使用javascript。

解决方案1 ​​

当文档载入,去你想要

<script type="text/javascript"> 
function load() 
{ 
window.location.hash="mylocation"; 
} 
</script> 

解决方案2

在标题中的 “哈希” 或锚:

<script type="text/javascript" language="javascript"> 
    function moveWindow(){window.location.hash="mylocation";} 
</script> 

在身体标记:

<body onload="moveWindow()"> 

而且你的锚:

<a name="mylocation"></a>

+0

非常感谢!我需要一种方法在Twig URL中设置锚点,以便在引发异常时转到页面上的特定位置。不能完成,所以相反,我在body标签中放置了一个树枝变量,并将其设置为一个空字符串。然后,如果抛出异常,我使用javascript填充字符串变量,如答案(window.location.hash =“foo”)所示,并将其添加到页面的呈现中:。 – paidforbychrist 2017-11-18 01:34:41

9

一些简单的像这样会做

<body onload=' location.href="#myanchor" '> 
<a id='myanchor' href='#'>anchor text</a> 
1

这里有一个2018更新这是更加动态一点。

如果要拉取网址,请从网址中拉出锚点,然后将页面移至该锚点,则可以在页面加载时运行此JavaScript。

if (window.location.href.indexOf('#') == 0) { 
    let hash = window.location.href.split('#')[1]; 
    let hashTop = document.querySelector(`#${hash}`).offsetTop; 
    window.scrollTop = hashTop; 
} 

还有这种方法,它更简洁一点。

if (location.hash) { 
    let target = location.hash; 
    window.scrollTop = document.querySelector(target).offsetTop; 
} 

如果你不巴贝尔编译器ES6,只是改变了let关键字var。这也适用于WordPress,它会在锚点之前的URL中添加一个斜杠。