Tenho que carregar um PDF em uma página.
Idealmente, gostaria de ter um GIF animado de carregamento que seja substituído assim que o PDF for carregado.
javascript
jquery
Alex Andronov
fonte
fonte
Você tentou:
fonte
$(function({})
para que o quadro seja carregado primeiro. Mas não estou obtendo o resultado esperado. Chrome 25 MacIsso funcionou para mim (não pdf, mas outro
onload
conteúdo "resistente"):Espero que isto ajude.
fonte
setTimeout(WaitForIFrame, 200);
Estou tentando fazer isso e parece estar funcionando para mim: http://jsfiddle.net/aamir/BXe8C/
Arquivo pdf maior: http://jsfiddle.net/aamir/BXe8C/1/
fonte
Loading PDF...
mas quando atualizei a página, dissePDF Loaded!
. Mas isso parece funcionar com urls :) então é muito útil para mim. Obrigado!você já tentou. em vez disso?
fonte
Eu tentei uma abordagem pronta para o uso, não testei para conteúdo em PDF, mas funcionou para conteúdo normal baseado em HTML, veja como:
Etapa 1 : envolva seu Iframe em um invólucro div
Etapa 2 : adicione uma imagem de plano de fundo ao invólucro div:
Etapa 3 : em sua tag iframe, adicione
ALLOWTRANSPARENCY="false"
A ideia é mostrar a animação de carregamento na div do wrapper até que o iframe carregue depois de carregado, o iframe cobrirá a animação de carregamento.
De uma chance.
fonte
Usar jquery Load e Ready nenhum dos dois parecia realmente corresponder quando o iframe estava VERDADEIRAMENTE pronto.
Acabei fazendo algo assim
Onde #loader é uma div posicionada absolutamente sobre o iframe com um GIF giratório.
fonte
@Alex aw que é uma chatice. E se
iframe
você tivesse um documento html semelhante a:Definitivamente um hack, mas pode funcionar para o Firefox. Embora eu me pergunte se o evento de carregamento seria disparado muito cedo nesse caso.
fonte
Tive que mostrar um carregador enquanto o pdf no iFrame estava carregando, então o que eu descobri:
Estou mostrando um carregador. Assim que tiver certeza de que o cliente pode ver meu carregador, estou chamando o método de carregadores onCompllet que carrega um iframe. Iframe tem um evento "onLoad". Uma vez que o PDF é carregado, ele aciona o evento onloat onde estou escondendo o carregador :)
A parte importante:
iFrame tem evento "onLoad" onde você pode fazer o que precisa (ocultar carregadores etc.)
fonte
Aqui está o que eu faço para qualquer ação e funciona no Firefox, IE, Opera e Safari.
fonte
Se você espera que a interface de abrir / salvar do navegador apareça para o usuário assim que o download for concluído, você pode executar isso ao iniciar o download:
Quando o diálogo aparecer no topo da página, o evento de desfoque será acionado.
fonte
Depois que o arquivo pdf é carregado, o documento iframe terá um novo elemento DOM
<embed/>
, então podemos fazer a verificação desta forma:fonte
A solução que apliquei a essa situação é simplesmente colocar uma imagem de carregamento absoluta no DOM, que será coberta pela camada do iframe depois que o iframe for carregado.
O índice z do iframe deve ser (índice z do carregamento + 1) ou apenas superior.
Por exemplo:
Espero que isso ajude se nenhuma solução javaScript ajudou. Eu realmente acho que CSS é a melhor prática para essas situações.
Cumprimentos.
fonte