2010-01-13 13 views
8

estoy incorporación de un PDF en una página web con el siguiente código HTMLjQuery Ajax para cargar pdf en etiqueta de objeto

<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 puede ser un poco lento para cargar así que me gustaría para ocultar el objeto y muestra un mensaje de carga/gif hasta que esté completamente cargado para que el usuario no esté mirando una pantalla en blanco.

puede alguien sugerir una manera de hacer esto usando ajax jquery

Respuesta

3

siguiente código.

<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

Se podría mostrar un div marcador de posición y ocultar el objeto PDF hasta que se haya cargado por completo. No estoy seguro de si el evento load funciona, sin embargo, nunca he utilizado: trabaja

<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

Hay mucha discusión sobre cómo hacer algo una vez que se descarga un PDF. Las estrategias presentadas dependen de un evento cuando el complemento cargó su contenido. Parece que la combinación de Adobe Reader e Internet Explorer no nos da este evento.

¿Podríamos usar XMLHttpRequest para descargar primero el contenido PDF, ponerlo en la memoria caché del navegador pero no mostrarlo en realidad, y cuando eso ocurra indicarle al navegador que muestre el objeto?

Cuestiones relacionadas