Ich muss ein PDF innerhalb einer Seite laden.
Idealerweise hätte ich gerne ein animiertes GIF zum Laden, das ersetzt wird, sobald das PDF geladen wurde.
javascript
jquery
Alex Andronov
quelle
quelle
Hast du es versucht:
quelle
$(function({})
damit der Rahmen zuerst geladen wird. Aber ich bekomme nicht das erhoffte Ergebnis. Chrome 25 MacDies hat es für mich getan (kein PDF, sondern ein anderer "
onload
resistenter" Inhalt):Hoffe das hilft.
quelle
setTimeout(WaitForIFrame, 200);
Ich versuche dies und scheint für mich zu arbeiten: http://jsfiddle.net/aamir/BXe8C/
Größere PDF-Datei: http://jsfiddle.net/aamir/BXe8C/1/
quelle
Loading PDF...
aber als ich die Seite aktualisiert habe, sagtePDF Loaded!
. Aber das scheint mit URLs zu funktionieren :) also ist es sehr nützlich für mich. Vielen Dank!hast du es stattdessen schon versucht?
quelle
Ich habe einen Out-of-the-Box-Ansatz versucht. Ich habe dies nicht für PDF-Inhalte getestet, aber es hat für normale HTML-basierte Inhalte funktioniert.
Schritt 1 : Wickeln Sie Ihren Iframe in einen Div-Wrapper
Schritt 2 : Fügen Sie Ihrem Div-Wrapper ein Hintergrundbild hinzu:
Schritt 3 : Fügen Sie in Ihrem Iframe-Tag hinzu
ALLOWTRANSPARENCY="false"
Die Idee ist, die Ladeanimation im Wrapper-Div anzuzeigen, bis der Iframe geladen wird, nachdem er geladen wurde. Der Iframe würde die Ladeanimation abdecken.
Versuche es.
quelle
Die Verwendung von jquery Load und Ready schien nicht wirklich zu passen, wenn der Iframe WIRKLICH bereit war.
Am Ende habe ich so etwas gemacht
Wobei #loader ein absolut positionierter Div über dem Iframe mit einem Spinner-GIF ist.
quelle
@ Alex aw das ist ein Mist. Was wäre, wenn
iframe
Sie ein HTML-Dokument hätten, das so aussieht:Auf jeden Fall ein Hack, aber es könnte für Firefox funktionieren. Obwohl ich mich frage, ob das Ladeereignis in diesem Fall zu früh ausgelöst würde.
quelle
Ich musste einen Loader zeigen, während das PDF in iFrame geladen wird. Also, was ich mir ausgedacht habe:
Ich zeige einen Lader. Sobald ich sicher bin, dass der Kunde meinen Loader sehen kann, rufe ich die Methode onCompllet Loader auf, die einen Iframe lädt. Iframe hat ein "onLoad" -Ereignis. Sobald PDF geladen ist, löst es ein Onloat-Ereignis aus, bei dem ich den Loader verstecke :)
Der wichtige Teil:
iFrame verfügt über das Ereignis "onLoad", bei dem Sie das tun können, was Sie benötigen (Lader ausblenden usw.).
quelle
Hier ist, was ich für jede Aktion mache und es funktioniert in Firefox, IE, Opera und Safari.
quelle
Wenn Sie erwarten können, dass die Öffnungs- / Speicheroberfläche des Browsers nach Abschluss des Downloads für den Benutzer angezeigt wird, können Sie dies ausführen, wenn Sie den Download starten:
Wenn der Dialog oben auf der Seite angezeigt wird, wird das Unschärfeereignis ausgelöst.
quelle
Da das iframe-Dokument nach dem Laden der PDF-Datei ein neues DOM-Element enthält
<embed/>
, können wir die Prüfung folgendermaßen durchführen:quelle
Die Lösung, die ich auf diese Situation angewendet habe, besteht darin, einfach ein absolutes Ladebild im DOM zu platzieren, das nach dem Laden des Iframes von der Iframe-Ebene abgedeckt wird.
Der Z-Index des Iframes sollte (Laden des Z-Index + 1) oder nur höher sein.
Beispielsweise:
Hoffe das hilft wenn keine JavaScript Lösung. Ich denke, dass CSS für diese Situationen die beste Vorgehensweise ist.
Freundliche Grüße.
quelle