Webアプリケーション内で、次のコード行を使用してiframe
にPDFドキュメントを表示しています:
<iframe id="iframeContainer" src="https://example.com/pdfdoc.pdf"
style="width:100%; height:500px;"></iframe>
これは、PDFの幅がiFrameの範囲内に収まるようにスケーリングし、ドキュメント内のすべてのページを表示する垂直スクロールバーを持つすべての主要なデスクトップブラウザーで正常に機能します。
ただし、現時点では、PDFを取得してMobile Safariで正しく表示することはできません。この場合、PDFドキュメントの残りを表示するための水平または垂直スクロールバー。
Mobile Safariのこの問題の回避策を知っている人はいますか?
更新-2013年3月
何時間もの探索と実験の後、私はこの問題が本当に混乱だと結論付けることができます!!多くの解決策がありますが、それぞれが完璧とはほど遠いものです。これに苦労している他の人は、「 iPad上のiFrameの問題の戦略 」を参照することをお勧めします。私にとっては、これを書き留めて、iPadユーザー向けの別のソリューションを探す必要があります。
更新-2015年5月
この質問の簡単な更新。最近、Googleドライブビューアの使用を開始しました。これにより、元の問題がほぼ解決されました。 PDFドキュメントへの完全なパスを指定すると、GoogleはPDF(embedded=true
)。例.
これを小さなビューポートのフォールバックとして使用し、上記のリンクを<iframe>
に埋め込むだけです。
新しい解決策を見つけました。 iOS 8の時点で、モバイルSafariはPDFをフレーム内のHTMLドキュメント内の画像としてレンダリングします。PDFロード後に幅を調整できます。
<iframe id="theFrame" src="some.pdf" style="height:1000px; width:100%;"></iframe>
<script>
document.getElementById("theFrame").contentWindow.onload = function() {
this.document.getElementsByTagName("img")[0].style.width="100%";
};
</script>
試してくださいpdf.js
はモバイルサファリ内でも動作するはずです。 https://github.com/mozilla/pdf.js/
これに対する私の解決策は、モバイルではGoogleドライブを使用し、大きな画面ではiframeに埋め込まれた標準のPDFを使用することです。
.desktop-pdf {
display: none;
}
.mobile-pdf {
display: block;
}
@media only screen and (min-width : 1025px) {
.mobile-pdf {
display: none;
}
.desktop-pdf {
display: block;
}
}
<div class="outer-pdf" style="-webkit-overflow-scrolling: touch; overflow: auto;">
<div class="pdf">
<iframe class="desktop-pdf" scrolling="auto" src="URL HERE" width="100%" height="90%" type='application/pdf' title="Title">
<p style="font-size: 110%;"><em>There is content being displayed here that your browser doesn't support.</em> <a href="URL HERE" target="_blank"> Please click here to attempt to view the information in a separate browser window. </a> Thanks for your patience!</p>
</iframe>
<iframe class="mobile-pdf" scrolling="auto" src="https://drive.google.com/viewerng/viewer?embedded=true&url=URL HERE" width="100%" height="90%" type='application/pdf' title="Title">
<p style="font-size: 110%;"><em>There is content being displayed here that your browser doesn't support.</em> <a href="URL HERE" target="_blank"> Please click here to attempt to view the information in a separate browser window. </a> Thanks for your patience!</p>
</iframe>
</div>
</div>