2010-01-13 13 views
8

sto incorporando un PDF in una pagina web con il seguente codice HTMLJQuery Ajax per il carico pdf in tag object

<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> 

del PDF può essere un po 'lento a caricare così mi piacerebbe per nascondere l'oggetto e visualizza un messaggio di caricamento/gif fino a quando non è completamente caricato in modo che l'utente non stia guardando uno schermo vuoto.

qualcuno può suggerire un modo per farlo utilizzando jQuery Ajax

risposta

3

Seguendo codice funziona.

<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

Si potrebbe visualizzare un div segnaposto e nascondere l'oggetto PDF fino a quando non ha completamente caricato. Non sono sicuro se l'evento load funziona, però, non ho mai usato:

<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

C'è molta discussione sul fare qualcosa una volta scaricato un PDF. Le strategie presentate dipendono da un evento quando il plug-in ha caricato il suo contenuto caricato. Sembra che la combinazione di Adobe Reader e Internet Explorer non ci dia questo evento.

È possibile utilizzare XMLHttpRequest per scaricare prima il contenuto PDF, inserirlo nella cache del browser ma non visualizzarlo e, quando ciò è stato fatto, dire al browser di mostrare l'oggetto?