2010-01-13 2 views
8

Я встраивание PDF в веб-страницы с помощью следующего HTMLJQuery Ajax для загрузки в формате 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

Следующий код работает.

<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> 
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(); 
}); 
0

Существует много дискуссий о том, как что-то делать, как только PDF загружается. Представленные стратегии зависят от события, когда загруженный плагин загружал его содержимое. Кажется, что сочетание Adobe Reader и Internet Explorer не дает нам этого события.

Можем ли мы использовать XMLHttpRequest для загрузки содержимого PDF сначала, поместив его в кеш браузера, но на самом деле не отображая его, и когда это будет сделано, скажите браузеру показать объект?

Смежные вопросы