2015-02-25 6 views
5

Chcę wykryć kiedy pdf załadował, ale zdarzenie jQuery .load() nie odpala, gdy przeglądarka żąda plików PDF za pomocą cząstkowych wniosków zakres treści w Chrome 40.Jak wykryć, kiedy plik PDF jest ładowany w elemencie iframe, gdy przeglądarka żąda częściowego żądania zakresu treści?

chcę wywołać funkcję drukowania przeglądarki() po pdf został załadowany. Jeśli plik PDF jest wystarczająco mały, przeglądarka nie żąda zakresów, ale w przypadku większych plików pdf, jak mogę wykryć ładowanie 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'); 
}); 

Przykładem może być postrzegane w http://stringham.me/pdf.html

Odpowiedz

0

To może brzmieć jak głupie odpowiedzi, ale czy próbowałeś atrybut HTML onload?

+0

Zachowanie html onload jest podobne do obsługi zdarzeń '.load() jQuery. Obie uruchamiają się, jeśli przeglądarka nie wykonuje wielu zakresów żądań, aby pobrać plik pdf. – Ryan

Powiązane problemy