点击链接后,它会在chrome的一个新标签中打开PDF。PDF可以包含多个页面。PDF在一个<embed>标签中。我想要实现的是通过使用javascript或jQuery能够在chrome浏览器的开发人员工具控制台中滚动PDF。当我在页面上右键点击时,我看不到源代码。
我试着用
window.scrollBy(0,200)
window.scrollTo(0,200)但是javascript似乎不起作用。pdf的源码如下所示
<html>
<BODY>
<EMBED ID='ID' SRC='URL.PDF' TYPE='application/pdf' internalinstanceid='5'></EMBED>
</BODY>
</HTML>有没有其他方法或途径可以让我滚动浏览PDF文件?有没有什么命令可以让我在chrome的开发者控制台中输入滚动浏览PDF的命令?
发布于 2018-03-15 18:09:32
简而言之,您不能- PDF不是DOM元素,它是由浏览器中的特殊PDF阅读器呈现的文档。每种浏览器都有自己的渲染PDF的机制,没有办法以编程方式控制它们。
充其量你可以像这样跳过页面(假设你的embed是页面上的第一个)
var x = document.getElementsByTagName('embed')[0]
x.src = "url/to/your.pdf?page=page_number"这将使嵌入的PDF导航到page_number
编辑:
如果你可以使用一个仍然支持NPAPI PDF插件的旧浏览器,你(理论上)可以做到这一点-然后你可以模拟箭头键的按下,允许你在文档中滚动。然而,在所有现代浏览器中,这是不可能的,因为如果没有某种用户交互,您就不能触发按键事件(这是有充分理由的!)。
发布于 2021-11-17 12:28:49
虽然目前你不能做一个跨浏览器的解决方案,因为如何渲染pdf不是标准的,基于铬的浏览器(chrome,edge,opera等)的一部分。用元素包装pdf显示插件,这些元素允许使用DOM与插件进行一些交互。
围绕着embed标签,你会发现chrome使用了GUI的web组件构建了一些div,包括滚动条!猜猜当你滚动这个容器时会发生什么?
let scroller = document.getElementsByTagName('pdf-viewer')[0].shadowRoot.getElementById('scroller')
scroller.scrollBy(0,200)我怀疑这是Chromes倡议的一部分,目的是解释浏览器行为,而浏览器行为是web组件移动的一部分
https://stackoverflow.com/questions/49295986
复制相似问题