2015-02-25 14 views
5

Voglio rilevare quando un pdf è stata caricata, ma l'evento jQuery .load() mai spara quando il browser richiede il file PDF con le richieste di intervallo di contenuti parziali in Chrome 40.Come rilevare quando pdf viene caricato in iframe quando il browser richiede richieste di intervallo di contenuto parziale?

voglio attivare la funzione di stampa del browser() una volta che la il pdf è stato caricato. Se il pdf è abbastanza piccolo, il browser non richiede intervalli, ma per i pdf più grandi, come posso rilevare il caricamento del pdf?

function download(src){ 

    var iframe; 

    function check() { 
     console.log('checking..'); 
     if(iframe.contentWindow && iframe.contentWindow.document && iframe.contentWindow.document.body && iframe.contentWindow.document.body.children && iframe.contentWindow.document.body.children.length > 0){ 
      console.log('embed element exists... how do I tell when it\'s loaded?'); 
     } else { 
      timeout = setTimeout(check, 150); 
     } 
    } 

    var timeout = setTimeout(check, 150); 
    iframe = $('<iframe type="application/pdf" src="'+src+'"></iframe>').appendTo(document.body).load(function() { 
     console.log('iframe is loaded. This never happens when there are range requests'); 
    }).get(0); 
} 
$(document).ready(function(){ 
    download('test.pdf'); 
}); 

Un esempio può essere visto in http://stringham.me/pdf.html

risposta

0

Questo può sembrare una risposta stupida, ma hai provato l'attributo HTML onload?

+0

L'onload html si comporta in modo simile al gestore di eventi '.load()' di jQuery. Entrambi sparano se il browser non esegue più intervalli di richieste per scaricare il pdf. – Ryan

Problemi correlati