2015-02-25 13 views
5

Ben pdf yüklendiğinde algılamak istiyorum, ama tarayıcı keresinde tarayıcı baskı() fonksiyonunu tetiklemek istiyorumTarayıcı kısmi içerik aralığı istekleri istediğinde iframe pdf ne zaman yüklenir?

Chrome 40. kısmi içerik yelpazesi istekleri ile pdfs istediğinde jQuery .load() olay asla ateşler pdf yüklenmiştir. Eğer pdf yeterince küçük değilse tarayıcı aralıkları talep etmez, ancak daha büyük pdfs için pdf yüklemesini nasıl algılayabilirim?

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'); 
}); 

bir örnek

http://stringham.me/pdf.html

cevap

0

Bu aptal bir cevap gibi gelebilir görülebilir, ancak onload html özelliğini denediniz mi?

+0

Onload html, jQuery'nin '.load()' olay işleyicisine benzer davranır. Tarayıcı, pdf'yi indirmek için birden fazla istek aralığı yapmadığında ikisi de ateşlenir. – Ryan