我所尝试的
在page.html
上:
<a href="#top">#top</a>
然后我在Firefox和Chrome中打开page.html
,右键单击链接并选择 * 复制链接地址 *。
我得到了什么
example.com/#top
我期望得到的
example.com/page.html#top
我记得在我早期使用HTML的时候,我现在正在阅读MDN,相对URI片段锚点(#something
)应该指向浏览器所在的同一页面(点击这些链接不应该重新加载页面)。这也符合我从这个测试片段中得到的行为:
<a href="#top">#top</a>
上面的代码片段链接到https://stacksnippets.net/js#top
,而不是https://stacksnippets.net/#top
,这意味着它可以按预期工作。
我发现另一个问题也有同样的问题:Anchor links reload the page。最后,这个家伙指向/support/test/#first
,明确地告诉浏览器指向同一个页面。这可能也是我最后的手段,但首先我想看看我是否能使标准行为工作。
那么为什么会发生这种情况呢?如果我的页面上有其他东西,我该如何调试以及在哪里查看?这种行为是否有任何常见的原因,例如,可能是某些Bootstrap插件被干扰了?
发生这种情况的页面仅使用jQuery和Bootstrap。
UPDATE:我删除了页面上所有的脚本和样式表,但仍然有问题。所以这不是jQuery或Bootstrap的干扰。
1条答案
按热度按时间0ve6wy6x1#
找到了:
它在文档的
<head></head>
中。如果我使用 Web Developer Tools → Inspector 实时删除这个<base/>
tag,它会立即修复相对URL,甚至没有任何页面重新加载。