如何找出何时通过embed标签加载PDF

时间:2017-02-13 18:53:38

标签: javascript html pdf httphandler

我试图使用embed标签显示PDF。 PDF是从.NET中的HTTPHandler加载的。

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

我已尝试在onloadeddata,onload,onloadstart,onended和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视图中的变量中定义。

从处理程序本身做任何事情都不是一个选项,因为我也在缓存结果,因此处理程序不会再次被同一文件命中。

1 个答案:

答案 0 :(得分:0)

整个PDF文件可能永远不会完全加载...特别是如果PDF查看器是Adobe Reader,但任何能够利用&#34;快速Web查看&#34;的PDF查看器也是如此。 PDF文件是随机访问,符合标准的查看器只会请求显示所请求页面所需的服务器字节。这就是为什么你可以在浏览器中打开PDF的原因,例如,立即跳转到1000页文档的第500页而不等待整个下载。 Web优化的PDF专门设计为做你想做的事。

也就是说,您可以尝试不在HTML中设置embed元素的src属性,并使用AJAX(或其他东西)将PDF作为blob获取,然后在&#34;完成后设置src属性&#34 ;事件被解雇。然后,您知道在之前它已经开始显示整个文件