href="#" 重定向到网站首页而不是当前页面的顶部

12

在网站上遇到了一个奇怪的问题。链接标签使用 href="#anything" 时,不会将您移动到页面顶部或指定的锚点,而是会将您移动到主页。当我悬停在链接上时,在我的 Firefox 状态栏中看到的是 example.com/# 而不是 example.com/testpage.php#

网站充满了垃圾代码,无法验证所有设置,特别是头部配置等。

有关此可能出现的位置的任何提示吗?

附注:链接的 href 没有通过 JS 更改,Firebug 声称在我单击它时它是 href="#"


发生这种情况时,您在哪一页? - Pekka
1
是否定义了目标属性? - Gabriele Petrioli
请展示您的代码,其中定义了您的目标“#anything”。在目标名称/ID中不要重复使用“#”...只需使用“anything”。 - philfreo
2个回答

25

我的初步想法是你可能使用了base标签。检查你的代码是否有以下类似内容,并在必要时将其移除:

<base href="http://www.mydomain.com/testpage.php" />

显然,需谨慎处理因为可能存在某些标记与现有基础标记相关联。同时,请确保你的href值不是以斜杠开头,像这样:

<a href="/#anything">Click Me</a>

这将会跳转到根目录默认起始页上的#anything位置。


3
好的,我会尽力进行翻译。内容如下:是的,找到了基础标签,并确认它是罪恶之源。谢谢! - Brock
1
@Brock 这是你故意要开个玩笑吗? :) 嘿嘿。 - Sampson

3

您的代码中 <head> 部分是否有 <base> 标签?

这将使所有相对 URL 请求以基础标签中指定的 href 开头。如果页面依赖它的存在,我强烈建议您不要删除它,否则您可能需要进行大量更新。

更多信息:


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接