如何通过嵌入标签了解何时加载 PDF



>我正在尝试使用嵌入标签显示PDF。PDF 是从 .NET 中的 HTTPHandler 加载的。

PDF 的显示工作正常,但我想知道文件何时完成加载和显示,以便我可以运行 JavaScript 函数。

我尝试在事件处理程序中绑定 onloaddata、onload、onloadstart、onend 和 onplay,但它们都没有被击中。

我想做的事情可能吗?如果是这样,我可以捕捉到什么事件?

<embed src=@virtualPath  id="pdfiFrame" type="application/pdf" alt="pdf"  style="width: 100%; height: 99.4%;" frameborder="0" pluginspage="http://www.adobe.com/products/acrobat/readstep2.html" onloadeddata='tryThis;' onload="tryThis;" onloadstart="tryThis;", onended="tryThis;" onplay="tryThis;"/>
function tryThis(arg) {
    alert("here = " + arg);
}

路径在 MVC Razor 视图的变量中定义。

从处理程序本身执行任何操作都不是一种选择,因为我也在缓存结果,因此处理程序不会对同一文件进行第二次命中。

整个PDF文件可能永远不会完全加载...特别是如果PDF查看器是Adobe Reader,但对于任何能够利用"快速Web视图"的PDF查看器也是如此。PDF 文件是随机访问的,符合要求的查看器将仅从服务器请求显示所请求页面所需的字节。这就是为什么您可以在浏览器中打开 PDF,例如,立即跳转到 1000 页文档的第 500 页,而无需等待整个内容下载。Web 优化的 PDF 是专门为做你想要它做的事情而设计的。

也就是说,您可以尝试不在HTML中设置嵌入元素的src属性,而是使用AJAX(或其他东西(将PDF作为blob获取,然后在"done"事件触发后设置src属性。然后,您甚至在开始显示之前就知道您拥有整个文件。

最新更新