有没有办法在PDF中保留scrollIntoView行为?

时间:2019-09-03 09:07:01

标签: javascript google-chrome pdf browser

我在网站上有一个页面,单击某些单词时,它使用scrollIntoView跳到页面的其他部分。

当将页面打印为PDF时(使用Chrome通过浏览器打印并将目标位置更改为PDF),scrollIntoView行为显然会丢失。

但是我以前见过包含目录的PDF,所以我知道可以通过文档进行链接,但是当使用Chrome的网页转换为PDF功能时,有什么方法可以使链接发生?

1 个答案:

答案 0 :(得分:1)

您可以在链接上使用href="#other-elements-id",以使该链接滚动到该链接(linking to another section on MDN)。如果您在Chrome中将页面打印为PDF格式,则仍然可以使用。

如果添加事件侦听器,则可以防止此默认行为,并且在浏览器中而不是PDF时仍可以使用scrollIntoView

var link = document.getElementById('link');
var section = document.getElementById('section');

link.addEventListener('click', function(e) {
  e.preventDefault();
  
  section.scrollIntoView({ behavior: 'smooth' });
});
.spacer {
  height: 5000px;
  background-color: pink;
}
<a id="link" href="#section">Go to section at the bottom</a>

<div class="spacer"></div>

<div id="section">This is a section at the bottom</div>

Codepen example.将输出的iFrame打印为PDF,以查看PDF中的链接。