当使用 <base> 时,我可以使用相对 <a href=#foo> 并转到当前页面上的命名锚点吗?

Can I use relative <a href=#foo> and go to a named anchor on the current page when when <base> is being used?

如果我有一个页面www.example1.com/foo/test.html如下:

<head>
<base href=http://www.example2.com/>
</head>
<body>
<a href=#foo>foo</a>
...
<a name=foo />
</body>

然后当我点击“foo”时,它会将我带到 http://www.example2.com/#foo 而不是当前页面的 foo。我想这是有道理的,但是当 <base> 指向其他地方时,有没有办法进行页面本地命名锚点跳转?

请注意 test.html 是动态命名的,因此 href=...#foo 中的绝对路径不是一个选项。一些 JS 可能是,但海峡 html 将是首选。

这是预期的行为,文档说所有相关链接都与包含锚点相关:

另请参阅:

  • href="#" redirects to the index page but not to the current page's top