在新 Chrome PDF 查看器中访问 PDF 嵌入元素
Accessing PDF embed element in new Chrome PDF viewer
我曾在 Chrome PDF 查看器中使用嵌入式 PDF 进行扩展开发,最近查看了通过更改 <embed>
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 开始)Polymer/web 基于组件的 Chrome PDF 查看器,我得到一个奇怪的响应,即没有这样的可访问 DOM 元素 <embed>
, 这是...一个函数!
以上代码创建并嵌入了元素,无论如何,TypeError
ⓧ Uncaught TypeError: Cannot use 'in' operator to search for 'rawScopes' in undefined
...但此后与 DOM 没有明显的可访问连接,也没有对 embed_el
变量的更改。
尝试访问 PDF <embed>
元素的示例:
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 的当前版本中,选择任何 'embed' 或 'object' 标签 (issue 543932) 时都会发生此错误。如果您更新到测试版 (48.0.2564.41),则不会再发生这种情况:
document.querySelector('embed');
function anonymous()
__proto__: Object
<function scope>
但即便如此,更新 src url 并不会更新正在查看的页面。如果有人找到更多信息,如果他们在这里分享,我将不胜感激。
我曾在 Chrome PDF 查看器中使用嵌入式 PDF 进行扩展开发,最近查看了通过更改 <embed>
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 开始)Polymer/web 基于组件的 Chrome PDF 查看器,我得到一个奇怪的响应,即没有这样的可访问 DOM 元素 <embed>
, 这是...一个函数!
以上代码创建并嵌入了元素,无论如何,TypeError
ⓧ Uncaught TypeError: Cannot use 'in' operator to search for 'rawScopes' in undefined
...但此后与 DOM 没有明显的可访问连接,也没有对 embed_el
变量的更改。
尝试访问 PDF <embed>
元素的示例:
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 的当前版本中,选择任何 'embed' 或 'object' 标签 (issue 543932) 时都会发生此错误。如果您更新到测试版 (48.0.2564.41),则不会再发生这种情况:
document.querySelector('embed');
function anonymous()
__proto__: Object
<function scope>
但即便如此,更新 src url 并不会更新正在查看的页面。如果有人找到更多信息,如果他们在这里分享,我将不胜感激。