Muszę załadować plik PDF na stronie.
Idealnie chciałbym mieć ładowany animowany gif, który jest zastępowany po załadowaniu pliku PDF.
javascript
jquery
Alex Andronov
źródło
źródło
Czy próbowałeś:
źródło
$(function({})
aby rama ładowała się jako pierwsza. Ale nie osiągam oczekiwanego wyniku. Chrome 25 MacZrobiło to dla mnie (nie pdf, ale inna „
onload
odporna” zawartość):Mam nadzieję że to pomoże.
źródło
setTimeout(WaitForIFrame, 200);
Próbuję tego i wydaje się, że działa dla mnie: http://jsfiddle.net/aamir/BXe8C/
Większy plik pdf: http://jsfiddle.net/aamir/BXe8C/1/
źródło
Loading PDF...
ale kiedy odświeżyłem stronę, powiedziałPDF Loaded!
. Ale to wydaje się działać z adresami URL :), więc jest to dla mnie bardzo przydatne. Dzięki!czy próbowałeś już zamiast tego?
źródło
Wypróbowałem niestandardowe podejście do tego, nie testowałem tego pod kątem zawartości PDF, ale zadziałało to w przypadku normalnej zawartości HTML, oto jak:
Krok 1 : Umieść element iframe w opakowaniu div
Krok 2 : Dodaj obraz tła do opakowania div:
Krok 3 : dodaj tag iframe ur
ALLOWTRANSPARENCY="false"
Chodzi o to, aby pokazać animację ładowania w opakowującym elemencie DIV, dopóki element iframe nie zostanie załadowany po załadowaniu, a element iframe zakryje animację ładowania.
Spróbuj.
źródło
Używanie obu jquery Load i Ready nie wydawało się tak naprawdę pasować, gdy iframe był NAPRAWDĘ gotowy.
W końcu zrobiłem coś takiego
Gdzie #loader to absolutnie umieszczony element div nad elementem iframe z gifem typu spinner.
źródło
@Alex aw to bummer. A co
iframe
by było, gdybyś miał w swoim dokumencie HTML, który wyglądałby tak:Zdecydowanie hack, ale może działać w przeglądarce Firefox. Chociaż zastanawiam się, czy w takim przypadku zdarzenie ładowania uruchomiłoby się zbyt szybko.
źródło
Musiałem pokazać program ładujący podczas ładowania pliku PDF w iFrame, więc to, co wymyśliłem:
Pokazuję ładowarkę. Gdy upewnię się, że klient widzi mój program ładujący, wzywam metodę onCompllet, która ładuje element iframe. Element iframe zawiera zdarzenie „onLoad”. Po załadowaniu PDF wywołuje zdarzenie onloat, w którym ukrywam moduł ładujący :)
Ważna część:
iFrame ma zdarzenie „onLoad”, w którym możesz robić to, czego potrzebujesz (ukrywać programy ładujące itp.)
źródło
Oto, co robię dla każdej akcji i działa w przeglądarkach Firefox, IE, Opera i Safari.
źródło
Jeśli możesz oczekiwać, że po zakończeniu pobierania pojawi się dla użytkownika interfejs otwierania / zapisywania przeglądarki, możesz go uruchomić po rozpoczęciu pobierania:
Gdy okno dialogowe pojawi się na górze strony, nastąpi rozmycie.
źródło
Ponieważ po załadowaniu pliku pdf dokument iframe będzie miał nowy element DOM
<embed/>
, więc możemy sprawdzić w ten sposób:źródło
Rozwiązaniem, które zastosowałem w tej sytuacji, jest po prostu umieszczenie obrazu wczytywania absolutnego w DOM, który zostanie zakryty przez warstwę iframe po załadowaniu iframe.
Indeks z elementu iframe powinien wynosić (indeks z ładowania + 1) lub po prostu wyższy.
Na przykład:
Mam nadzieję, że to pomoże, jeśli żadne rozwiązanie javaScript nie zadziałało. Myślę, że CSS to najlepsza praktyka w takich sytuacjach.
Z poważaniem.
źródło