首页 > 解决方案 > 使用集合 ID 和基本 href 链接到自己的页面 - ToC

问题描述

我需要通过 HTML 创建一个 ToC - 基本上是这样的:

  1. 第一项
  2. 第二项...

我知道我可以<h1 id="first">First item</h1>在 ToC 中创建例如第一个项目,例如

<li><a href="#first">First item</a></li>
<li><a href="#second">Second item</a></li>

我面临的主要问题<base href="myService">是设置。因此,默认情况下,指向自己页面的链接将不起作用,因为已将其base-href考虑在内。

有没有合适的方法来生成带有 set 的 ToC base href

标签: html

解决方案


当您指定一个<base>URL 时,该页面上的所有相对链接都会转到该 URL。这就是它的用途,所以如果你不想要这种行为,请避免使用它。

如果<base>出于某种原因必须使用,则必须通过指定页面的 URL 为所有锚点使用绝对 URL。但是,如果页面的 URL 发生更改然后链接也需要更新,这可能会导致问题。要解决这个问题,可以使用 JavaScript 获取文档的绝对位置,并在末尾添加锚点。像这样的东西:

<li><a href="javascript:;" onclick="location.hash='#first';">First item</a></li>
<li><a href="javascript:;" onclick="location.hash='#second';">Second item</a></li>

推荐阅读