web-dev-qa-db-ja.com

<iframe>でPDFファイルを開く方法

PDFファイルをiframeで開きたい。私は次のコードを使用しています:

<a class="iframeLink" href="https://something.com/HTC_One_XL_User_Guide.pdf"
   jQuery1640737952376988841="85"> User guide </a>

Firefoxでは正常に開きますが、IE8では開きません。

IEでも動作させる方法を知っている人はいますか?

31
user1753210

iframeを使用してPDFを「レンダリング」すると、すべてのブラウザーで機能しません。ブラウザがPDFファイルを処理する方法に依存します。一部のブラウザー(FirefoxやChromeなど)には組み込みのPDFがレンダリングされており、一部の古いブラウザー(おそらく古いバージョンのPDFがダウンロードを試行する場合にIEインラインを表示できます)代わりにファイル)。

代わりに、HTMLファイルにPDFを埋め込むJavascriptライブラリである PDFObject をチェックアウトすることをお勧めします。ブラウザの互換性をかなりうまく処理し、IE8で動作する可能性が最も高いです。

HTMLでは、divを設定してPDFを表示できます。

<div id="pdfRenderer"></div>

次に、そのdivにPDFを埋め込むJavaScriptコードを含めることができます。

var pdf = new PDFObject({
  url: "https://something.com/HTC_One_XL_User_Guide.pdf",
  id: "pdfRendered",
  pdfOpenParams: {
    view: "FitH"
  }
}).embed("pdfRenderer");
38
Aamir

これは、HTTP [S]アクセス可能なPDFを<iframe>からリンクするコードです。

<iframe src="https://research.google.com/pubs/archive/44678.pdf"
   width="800px" height="600px" >

フィドル: http://jsfiddle.net/cEuZ3/1545/

編集:<a>タグ(onclickイベント)からJavascriptを使用して、実行時にiFrameのSRC属性を設定できます...

編集2:明らかに、それはバグです(ただし、回避策があります):

Adobe Reader 10.0を使用してInternet ExplorerでPDFファイルが開かない-ユーザーが空の灰色の画面を表示します。ユーザーのためにこれを修正するにはどうすればよいですか?

20
Andrea Ligios

また、WebサーバーがContent-Disposition = inlineでファイルを送信することを確認することも重要です。自分でファイルを読んで、そのコンテンツをブラウザに送信する場合、これは当てはまらない可能性があります。

pHPでは、このようになります...

...headers...
header("Content-Disposition: inline; filename=doc.pdf");
...headers...

readfile('localfilepath.pdf')
5
Roey