10

我怎么能,或者是否有可能做到这一点,当网页加载时,它向您显示的第一件事是页面的一部分,锚标记是您希望该人首先看到的位置。

可能吗?

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

4

5 回答 5

9

像这样简单的事情就可以了

<body onload=' location.href="#myanchor" '>
<a id='myanchor' href='#'>anchor text</a>
于 2013-05-03T22:51:28.380 回答
6

使用 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>

于 2013-05-03T21:58:41.160 回答
5

这是一个更加动态的 2018 年更新。

如果您想拉 URL,从 URL 拉锚,并将页面移动到该锚,您可以在页面加载时运行此 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;
}

如果你不使用 babel 编译 ES6,只需将let关键字更改为var. 这也适用于 WordPress,它将在 URL 中的锚点之前添加一个斜杠。

于 2018-01-16T17:11:08.613 回答
0

最后,杰克斯科特的回答对我有用。如果有人像我一样是菜鸟,请确保将其放在您的头标签中,也许就在结束标签的正上方,并从下面复制带有标签的完整脚本(我希望人们会考虑这样做,对于我们这些菜鸟谁需要确切的细节)。

<script type="text/javascript">
    window.addEventListener('load', function() {
       if (location.hash) location.href = location.hash;
    });
</script>

于 2021-09-08T01:33:33.540 回答
0

事实证明,这些答案的混合对我来说是最好的选择,并且通过从 URL 中拉取锚点并强制页面在预期目的地加载来具有动态的优势:

if (location.hash) location.href = location.hash;

这是我的项目最干净的解决方案,因为还有许多其他的东西正在运行:

查询:

$(window).on("load", function() {
    if (location.hash) location.href = location.hash;
}

香草:

window.addEventListener('load', function() {
    if (location.hash) location.href = location.hash;
}
于 2020-04-29T03:25:51.640 回答