Jupyter Notebook中HTML内部单元格超链接无法跳转问题
解决Jupyter Notebook中HTML目录跳转失效的问题
这个问题的核心是你设置的锚点(href里的#xxx)和Jupyter实际生成的目标元素ID不匹配,下面给你两个直接可行的解决办法:
方法1:手动给标题元素指定ID(最可靠)
直接在你的<h2>标签里加上id属性,让它和目录链接里的href完全对应:
<!-- 目录部分保持不变 --> <ol> <li><a href="#understanding">Understanding the Data</a></li> <li><a href="#reading_file">Reading the file</a></li> <li><a href="#adding_columns">Adding Columns</a></li> <li><a href="#general">General Analysis</a></li> </ol> <!-- 目标标题部分修改为带id的形式 --> <h2 id="understanding">Understanding the Data</h2> <h2 id="reading_file">Reading the file</h2> <h2 id="adding_columns">Adding Columns</h2> <h2 id="general">General Analysis</h2>
这样点击目录链接时,浏览器会直接定位到对应id的元素,不会出问题。
方法2:匹配Jupyter自动生成的锚点格式
如果你不想手动加id,需要遵循Jupyter对标题自动生成ID的规则:
- 标题文本转为全小写
- 空格替换为连字符
- - 去除首尾多余空格
比如你的标题Understanding the Data,Jupyter自动生成的ID是understanding-the-data,所以目录链接要改成:
<ol> <li><a href="#understanding-the-data">Understanding the Data</a></li> <li><a href="#reading-the-file">Reading the file</a></li> <li><a href="#adding-columns">Adding Columns</a></li> <li><a href="#general-analysis">General Analysis</a></li> </ol>
对应的标题部分保持原来的<h2>...</h2>即可,不用加id。
小技巧:验证锚点是否正确
如果还是不确定,可以在Notebook运行后,右键点击目标标题,选择「检查」,查看该<h2>元素的id属性值,然后把目录里的href改成和这个id完全一致的内容。
另外,修改后建议刷新一下Notebook页面,避免缓存导致的跳转失效~
内容的提问来源于stack exchange,提问作者M. Mufti
相关产品推荐
相关产品推荐

