IE8 eingebetteter PDF-Iframe

Lesezeit: 2 Minuten

Benutzeravatar von user2931470
Benutzer2931470

Ich habe das Tag verwendet, um eine PDF-Datei einzubetten.

<iframe id="iframepdf" src="https://stackoverflow.com/questions/19654577/files/example.pdf"></iframe>

Dies funktioniert gut in Chrome, IE8+, Firefox usw., aber aus irgendeinem Grund werden die Dateien heruntergeladen, anstatt eingebettet zu werden, wenn einige Leute es in IE8 anzeigen. Ich weiß, dass dieser Browser veraltet ist, aber es ist der Standardbrowser in meinem Büro, und als solcher muss die Website dafür entworfen werden.

Hat jemand eine Idee, warum das passiert, wie ich es beheben kann oder eine Fehlermeldung ausgeben kann, anstatt die Dateien herunterladen zu lassen?

  • Schau dir das wahrscheinlich auch an Lernprogramm oder Frage

    – Flintix

    4. April 2022 um 12:32 Uhr


  • Ich stimme dafür, diese Frage zu schließen, weil es sich um eine alte Anwendung handelte, die diese Fähigkeit nicht hatte, daher zu dieser Zeit nicht zum Thema gehörte und dumme Antworten anzieht, die für mich heute funktionieren.

    – KJ

    9. März um 17:44 Uhr

Benutzeravatar von Adriano Repetti
Adriano Repetti

Es ist heruntergeladen wahrscheinlich da kein Adobe Reader Plug-In installiert ist. In diesem Fall weiß IE (egal welche Version) nicht, wie es gerendert werden soll, und lädt die Datei einfach herunter (Chrome hat beispielsweise einen eigenen eingebetteten PDF-Renderer).

Wenn Sie wollen versuchen um PDF-Unterstützung zu erkennen könnte:

  • !!navigator.mimeTypes["application/pdf"]?.enabledPlugin (jetzt veraltet, möglicherweise nur in einigen Browsern unterstützt).
  • navigator.pdfViewerEnabled (Live-Standard, kann sich ändern und wird derzeit nicht allgemein unterstützt).

2021: Heutzutage ist die ursprüngliche Antwort definitiv veraltet. Wenn Sie nicht relativ alte Browser unterstützen müssen, sollten Sie einfach verwenden <object> (eventuell mit einem Fallback) und es dabei belassen.


Das gesagt. <iframe> ist nicht der beste Weg, um ein PDF anzuzeigen (vergessen Sie nicht die Kompatibilität mit mobilen Browsern, z. B. Safari). Einige Browser öffnen diese Datei immer in einer externen Anwendung (oder in einem anderen Browserfenster). Der beste und kompatibelste Weg, den ich gefunden habe, ist ein bisschen knifflig, funktioniert aber auf allen Browsern, die ich ausprobiert habe (sogar ziemlich veraltet):

Behalten Sie Ihre <iframe> aber kein PDF darin anzeigen, wird es mit einer HTML-Seite gefüllt, die aus einem besteht <object> Schild. Erstellen Sie eine HTML-Umbruchseite für Ihr PDF, so sollte es aussehen wie Das:

<html>
<body>
    <object data="your_url_to_pdf" type="application/pdf">
        <div>No online PDF viewer installed</div>
    </object>
</body>
</html>

Natürlich müssen Sie noch das entsprechende Plug-in im Browser installieren. Sehen Sie sich auch diesen Beitrag an, wenn Sie Safari auf Mobilgeräten unterstützen müssen.

Warum eine HTML-Seite? So können Sie einen Fallback bereitstellen, wenn der PDF-Viewer nicht unterstützt wird. Interner Viewer, einfache HTML-Fehlermeldungen/-Optionen und so weiter…

Es ist schwierig, die PDF-Unterstützung zu überprüfen, damit Sie Ihren Kunden einen alternativen Viewer zur Verfügung stellen können PDF.JS Projekt; es ist ziemlich gut, aber die Wiedergabequalität – für Desktop-Browser – ist nicht so gut wie eine einheimisch PDF-Renderer (Ich habe aufgrund der Bildschirmgröße keinen Unterschied in mobilen Browsern festgestellt, nehme ich an).

  • Gibt es eine Möglichkeit, den Iframe nur anzuzeigen, wenn das Adobe Reader-Plug-In installiert ist, und eine Fehlermeldung anzuzeigen, wenn dies nicht der Fall ist?

    – Benutzer2931470

    29. Oktober 2013 um 10:04 Uhr

  • Das funktioniert jetzt, aber die Datei ist stark gezoomt? Ich habe iframe verwendet, da dies das PDF an die Breite des div anpassen konnte.

    – Benutzer2931470

    29. Oktober 2013 um 10:10 Uhr

  • Für alle, die Schwierigkeiten haben, ein konsistentes Verhalten in mobilen Browsern zu erreichen, siehe hier, dies hat mir geholfen: stackoverflow.com/questions/7437602/…

    – QFDev

    12. Januar 2015 um 15:30 Uhr

  • Warum ein <object> innerhalb ein <iframe>? Warum nicht nur ein Objekt?

    – Drazen Bjelovuk

    10. Dezember 2021 um 22:09 Uhr

  • @DrazenBjelovuk, dies ist ein ziemlich alter Thread, es sei denn, Sie müssen sehr alte Versionen von Safari unterstützen und/oder einen alternativen Renderer bereitstellen (nein, ich würde Google Docs definitiv nicht als Fallback verwenden), dann Sie wahrscheinlich brauchen die HTML-Seite nicht mehr. Es könnte ein bisschen wie eine PITA zum Testen sein, aber heutzutage einfach <object> sollte tun.

    – Adriano Repetti

    12. Dezember 2021 um 11:33 Uhr

Wenn der Browser ein PDF-Plugin installiert hat, führt er das Objekt aus, wenn nicht, verwendet er den PDF-Viewer von Google, um es als einfaches HTML anzuzeigen:

<object data="https://stackoverflow.com/questions/19654577/your_url_to_pdf" type="application/pdf">
    <iframe src="https://docs.google.com/viewer?url=your_url_to_pdf&embedded=true"></iframe>
</object>

  • Dieser würde wie Charme funktionieren, aber ich bekomme viel davon No Preview Available Dokumente verwenden

    – mdmb

    5. März 2018 um 10:35 Uhr

  • @Ancinek, hast du die beiden ersetzt your_url_to_pdf in mgutt (das in Objektdaten und das in google.com/viewer?

    – Magtun

    2. Juli 2018 um 10:29 Uhr

  • Ich habe die obige Code-Bildlaufleiste verwendet, die auf iPad-Geräten nicht angezeigt wird .scroll-container { max-height: 250px; overflow: auto; -webkit-overflow-scrolling: touch; }

    – Benutzer264675

    20. November 2019 um 20:28 Uhr


  • Es sieht so aus, als würde der Google-Viewer alle internen Lesezeichen im Dokument löschen.

    – Bangkoker

    7. Juni 2020 um 16:11 Uhr

Iframe

<iframe id="fred" style="border:1px solid #666CCC" title="PDF in an i-Frame" src="https://stackoverflow.com/questions/19654577/PDFData.pdf" frameborder="1" scrolling="auto" height="1100" width="850" ></iframe>

Objekt

<object data="https://stackoverflow.com/questions/19654577/your_url_to_pdf" type="application/pdf">
  <embed src="https://stackoverflow.com/questions/19654577/your_url_to_pdf" type="application/pdf" />
</object>

  • Wie kann man nun den Druck auf diesem Objekt auslösen, Druck ist nicht definiert?

    – Miguel

    14. Dezember 2016 um 12:43 Uhr

  • Die iFrame-Lösung hier ist genau das, was ich brauchte, um ein PDF anzuzeigen, das von einem MS MVC-Backend-Dienst generiert und als Ansicht zurückgegeben wurde. Ich habe alle anderen Lösungen ausprobiert und aus irgendeinem Grund hat keine davon funktioniert.

    –Terry H

    7. Dezember 2018 um 19:44 Uhr

  • Dies ist die einzige Lösung, die ich zum Laufen bringen könnte, ohne dass Firefox zum Herunterladen des Dokuments auffordert. Vielen Dank dafür!

    – Diskette nicht gefunden

    28. März 2022 um 11:45 Uhr

  • Das Objekt zeigt das PDF weiterhin als Bild an. Wenn Ihr PDF mehrere Seiten hat, sehen Sie nur die erste Seite.

    – Enrico

    31. August 2022 um 10:27 Uhr

Probieren Sie es aus.

<iframe src="https://docs.google.com/viewerng/viewer?url=http://infolab.stanford.edu/pub/papers/google.pdf&embedded=true" frameborder="0" height="100%" width="100%">
</iframe>

Benutzeravatar von Ganesan J
Ganesan J

In meinem Fall habe ich den Link direkt gesetzt und es funktioniert gut.

<!DOCTYPE html>
<html>
<title>Online HTML Editor</title>
<head>
</head>
<body>
    <h1>Online HTML Editor</h1>
    <div>This is real time online HTML Editor</div>
    <iframe id="if1" width="100%" height="900" style="visibility:visible" src="https://www.africau.edu/images/default/sample.pdf"></iframe>
</body>
</html>

Geben Sie hier die Bildbeschreibung ein

Notiz: Der obige Code, der in einer HTML-Datei funktioniert, die auf diesem Stack nicht funktioniert, wird in diesem Snippest überschrieben

  • Die Frage war, wie gezeigt werden kann, dass IE8 PDF nicht anzeigen kann, es sei denn, Acrobat oder eine andere Problemumgehung wurde installiert. Ihre Antwort befasst sich nicht mit dem Anzeigen einer Fehlermeldung.

    – KJ

    9. März um 18:00 Uhr


  • Oh, Entschuldigung, Herr. Ich habe die Frage nicht richtig gesehen. Ich habe geantwortet, um PDF nur in Chrome und anderen Browsern anzuzeigen

    – Ganesan J

    10. März um 7:54

  • Fairerweise hat der Fragekopf nicht klargestellt, dass es eindeutig war, wie Fehlermeldungen angezeigt werden, wenn ein Browser wie Chrome auf PDF-fähig eingestellt ist oder NICHT sein kann, wie z. B. leistungsschwache mobile Browser, bei denen ein eingebettetes gerahmtes PDF einfach leer ist. Es war eine schlecht formulierte, unangemessene Frage

    – KJ

    Vor 2 Tagen


Benutzeravatar von Ayo D Adesanya
Ayo D. Adesanya

Verwenden Sie die Adobe Embed PDF-API. Dies ist die Lösung, die ich am Ende verwendet habe. Funktioniert perfekt.

  • Die Frage war, wie gezeigt werden kann, dass IE8 PDF nicht anzeigen kann, es sei denn, Acrobat oder eine andere Problemumgehung wurde installiert. Ihre Antwort befasst sich nicht mit dem Anzeigen einer Fehlermeldung.

    – KJ

    9. März um 18:00 Uhr


  • Oh, Entschuldigung, Herr. Ich habe die Frage nicht richtig gesehen. Ich habe geantwortet, um PDF nur in Chrome und anderen Browsern anzuzeigen

    – Ganesan J

    10. März um 7:54

  • Fairerweise hat der Fragekopf nicht klargestellt, dass es eindeutig war, wie Fehlermeldungen angezeigt werden, wenn ein Browser wie Chrome auf PDF-fähig eingestellt ist oder NICHT sein kann, wie z. B. leistungsschwache mobile Browser, bei denen ein eingebettetes gerahmtes PDF einfach leer ist. Es war eine schlecht formulierte, unangemessene Frage

    – KJ

    Vor 2 Tagen


1446050cookie-checkIE8 eingebetteter PDF-Iframe

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy