html - 使用集合 ID 和基本 href 链接到自己的页面 - ToC
问题描述
我需要通过 HTML 创建一个 ToC - 基本上是这样的:
- 第一项
- 第二项...
我知道我可以<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
?
解决方案
当您指定一个<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>
推荐阅读
- php - MySQL设置会话wait_timeout,interactive_timeout在Codeigniter中不起作用
- reactjs - 如何使用 createSlice 进行 API 调用
- c# - C# Winforms 和 MySQL:使用 MySqlException 异常中的“数字”或“代码”属性在表单中显示自定义消息
- php - C++ 客户端无法使用 HTTP POST 查询将文件发送到 PHP 服务器
- javascript - 将渲染输出反应为 HTML 而不是组件
- html - CSS:如何将小吃栏水平居中?
- python - 一遍又一遍地擦除和重写海龟图形中同一位置的文本和卡号?
- c++ - C++ 程序跳过第二个函数调用
- sql - 基于大小写的 SQL 过滤器
- google-app-engine - 在 Google Cloud Build 过程中连接到数据库的问题