我在网站上有一个页面,单击某些单词时,它使用scrollIntoView
跳到页面的其他部分。
当将页面打印为PDF时(使用Chrome通过浏览器打印并将目标位置更改为PDF),scrollIntoView行为显然会丢失。
但是我以前见过包含目录的PDF,所以我知道可以通过文档进行链接,但是当使用Chrome的网页转换为PDF功能时,有什么方法可以使链接发生?
答案 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中的链接。