用于在对象标记中加载pdf的JQuery ajax

时间:2010-01-13 06:26:35

标签: jquery ajax

我正在使用以下html

在网页中嵌入PDF
   <object id="pdf" classid="clsid:CA8A9780-280D-11CF-A24D-444553540000" width="1024"
        height="600">
        <param name="SRC" value="/GetDoc.ashx?SOID=<%=Html.Encode(Model.OrderID)%>" />
        <embed src="/GetDoc.ashx?SOID=<%=Html.Encode(Model.OrderID)%>  "
            width="1024" height="600">                          
    </embed>
    </object>

PDF的加载速度有点慢,所以我想隐藏对象并显示加载消息/ gif,直到它完全加载,这样用户就不会看到空白屏幕。

有人可以使用jquery ajax

建议一种方法

3 个答案:

答案 0 :(得分:4)

以下代码有效。

<div style="background: transparent url(loading.gif) no-repeat">
<object height="1250px" width="100%" type="application/pdf" data="aaa.pdf">
    <param value="aaa.pdf" name="src"/>
    <param value="transparent" name="wmode"/>
</object>
</div>

答案 1 :(得分:0)

您可以显示占位符div并隐藏PDF对象,直到它完全加载为止。我不确定load事件是否有效,但我从未使用过它:

<div id="pdf-placeholder" style="width: 1024px; height: 600px;">
    <!-- whatever you want here -->
</div>
<object id="pdf" style="display: none;" ...>
   ...
</object>

// JS code
$(window).load( function() {
    $('#pdf-placeholder').hide();
    $('#pdf').show();
});

答案 2 :(得分:0)

下载PDF后,有很多关于做某事的讨论。所呈现的策略取决于插件加载其内容时的事件。似乎Adobe Reader和Internet Explorer的组合不会给我们这个事件。

我们是否可以先使用XMLHttpRequest下载PDF内容,将其放入浏览器缓存但不实际显示,并在完成后告诉浏览器显示该对象?