我创建了两个链接在一起的 Rmarkdown 页面。我想知道是否有一种方法可以将链接定向到每个页面上的特定位置。
---
title: "Page 1"
author: "--"
date: "22 9 2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
### Header
example text.
#### example plot 1.
```{r cars}
plot(cars)
```
more example text
#### example plot 2.
```{r pressure, echo=FALSE}
plot(pressure)
```
link to [Page 2](./Page-2.html)
第 2 页:
---
title: "Page 2"
author: "--"
date: "22 9 2020"
output: html_document
---
```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```
### Header
example text.
#### example plot 1.
```{r cars}
plot(cars)
```
more example text
#### example plot 2.
```{r pressure, echo=FALSE}
plot(pressure)
```
[Page 1](./Page-1.html)
例如,我希望第 2 页链接直接重定向到第二个图表。此外,当点击返回第 1 页时 - 有没有办法保存我当前正在查看的位置? 谢谢。
最佳答案
rmarkdown/knitr 的 HTML 输出不提供此功能。但是,您可以使用 javaScript (jquery) 轻松实现此目的:
这个想法是包含一个小脚本,该脚本将最后一个滚动位置保存在本地内存中的变量(我在下面将其称为 ScrPos
)中,并在页面(重新启动)时恢复滚动位置。 )已加载。
header.html
<script type="text/javascript">
// check if ScrPos is available. If so, scroll to ScrPos
$(function() {
if (localStorage.ScrPos) {
$(window).scrollTop(localStorage.ScrPos);
}
});
// save last scroll position to ScrPos before page unload
$(window).on("beforeunload", function() {
var ScrPos = $(window).scrollTop();
localStorage.setItem("ScrPos", ScrPos);
});
</script>
您可以在(两个).rmd 文件的 YAML header 中包含 header.html,如下所示:
output:
html_document:
include:
in_header: header.html
请注意,header.html 需要与 .Rmd 位于同一目录中。
关于html - Rmarkdown 'saving' html页面的确切位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64030309/