Javascript 在新的Chrome PDF查看器中访问PDF嵌入元素

Javascript 在新的Chrome PDF查看器中访问PDF嵌入元素,javascript,google-chrome,pdf,web-component,Javascript,Google Chrome,Pdf,Web Component,我曾在Chrome PDF viewer中使用嵌入式PDF进行扩展开发,最近我研究了通过更改DOM元素可以实现的功能:可以通过添加\page=2等更改正在查看的页面 比如说 embed_el = document.createElement('embed') pdf_url = 'https://www.tjvantoll.com/speaking/slides/Web-Components-Catch/San-Francisco/web-components-catch.pdf' embed_

我曾在Chrome PDF viewer中使用嵌入式PDF进行扩展开发,最近我研究了通过更改
DOM元素可以实现的功能:可以通过添加
\page=2
等更改正在查看的页面

比如说

embed_el = document.createElement('embed')
pdf_url = 'https://www.tjvantoll.com/speaking/slides/Web-Components-Catch/San-Francisco/web-components-catch.pdf'
embed_el.src = pdf_url
document.body.innerHTML = '' // discard whatever page you're viewing
document.body.appendChild(embed_el)
在较旧(47?)的Chrome版本或当前的Firefox(等)中添加嵌入式查看器,然后可以使用

page_number = '3'
document.querySelector('body embed')
    .setAttribute('src', pdf_url+'#page='+page_number)
尝试使用新的(从v.47开始)基于聚合物/网络组件的Chrome PDF查看器实现这一点,我得到了一个奇怪的响应,即没有这样可访问的DOM元素,它是。。。一个函数

上面的代码创建并嵌入元素,但不考虑类型错误

ⓧ Uncaught TypeError: Cannot use 'in' operator to search for 'rawScopes' in undefined
…但是在此之后,没有明显的可访问连接到DOM,也没有连接到
embed_el
变量上的更改

尝试访问PDF
元素的示例:

myfuncel = document.querySelector('embed')
▶ function embed
ⓧ Uncaught TypeError: Cannot use 'in' operator to search for 'rawScopes' in undefined
但是没有明确的方法将其用作函数

myfuncel()
ⓧ Uncaught TypeError: myfuncel is not a function(…)
例如,开发人员现在应该如何访问嵌入式PDF的
src
属性


…如果不是太超出范围,我会有兴趣了解为什么要进行此更改,以及通过将嵌入的PDF元素显示为函数实现了什么。

我认为这应该是一个评论,但我没有足够的声誉。在当前版本的Chrome中,选择任何“嵌入”或“对象”标记()时都会发生此错误。如果更新到Beta版(48.0.2564.41),则不会再发生这种情况:

document.querySelector('embed');
函数匿名()
__原型:对象

但即使如此,更新src url也不会更新正在查看的页面。如果有人发现更多信息,我将非常感谢他们在这里分享。

啊,这是一个bug-很好!我担心这可能是一个功能。更新
src
直到
.reload()
'd才更新页面,这是由于Chrome开发中的一个选择(我不久前在某个地方报告过,根据一些模糊的web标准规范,这不必是默认行为…)我一生都找不到它的位置,抱歉(但Chrome正在将其iFrame更改为“”,因此行为将改变…)我在edge Chrome上实现PDFObject库以提供单页PDF时也遇到了同样的错误。因此,浏览器是否可以合法显示PDF的测试在Chrome和Firefox中总是失败,但在IE中却大放异彩。