2015-02-25 3 views
5

Я хочу, чтобы обнаружить, когда PDF загружен, но событие JQuery .load() никогда не срабатывает, когда браузер запрашивает ПРВ с запросами частичными содержимого диапазона в Chrome 40.Как определить, когда pdf загружается в iframe, когда браузер запрашивает запросы на частичный контент?

Я хочу, чтобы вызвать функцию браузера печати(), как только pdf загружен. Если PDF достаточно мал, браузер не запрашивает диапазоны, но для больших pdf-файлов, как я могу определить загрузку 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'); 
}); 

Пример можно увидеть на http://stringham.me/pdf.html

ответ

0

Это может звучать как глупый ответ, но вы пробовали атрибут HTML OnLoad?

+0

Inload html ведет себя аналогично обработчику событий '.load()' jQuery. Они оба запускаются, если браузер не выполняет несколько запросов-диапазонов для загрузки pdf-файла. – Ryan

Смежные вопросы