<埋め込み>対<オブジェクト>


164

Adobe PDFビューアを表示したい場合、HTMLファイルで使用する適切な/最適なタグはどれですか。

現在、私は以下のコードを使用していますが、奇妙な副作用があります(たとえば、別の<input>テキストボックスに設定した開始フォーカスを奪うようです。jQueryUIResizeableクラスではうまく機能しないようです。等。)

<embed src="abc.pdf" type="application/pdf" />

<object>タグでも同じことができますか?1つのタグを使用する場合と他のタグを使用する場合の利点/欠点はありますか?


21
そして今、HTML5に<embed>を使用していますか?最良の方法は何ですか?
VinnyG 2011

@VinnyG <embed>は公式にHTML5の標準タグになりましたが、古いバージョンのブラウザとの互換性の問題が少なくともいくつか予想されます。
b1nary.atr0phy 2013

回答:


169

OBJECT vs. EMBED-なぜ常に埋め込みを使用しないのですか?

結論:OBJECTは良好、EMBEDは古い。IEのPARAMタグのほかに、ブラウザーがOBJECTの参照プラグインをサポートしていない場合、OBJECTタグ間のコンテンツはレンダリングされ、レンダリングされるかどうかに関係なく、コンテンツはhttpリクエストされます。

objectページに何かを埋め込むための現在の標準タグです。embedimgw3cの頭に浮かぶ前に、Netscape(に沿って含まれてobjectいました。

これは、次のようにPDFを含めるobject方法です。

<object data="data/test.pdf" type="application/pdf" width="300" height="200">
  alt : <a href="data/test.pdf">test.pdf</a>
</object>

古いブラウザでは理解できるがそうではないように、ほとんどすべてのブラウザでインラインPDFを表示する必要がある場合embedobject、次のようにする必要があります。

<object data="abc.pdf" type="application/pdf">
    <embed src="abc.pdf" type="application/pdf" />
</object>

このバージョンは検証されません


47
<embed>は実際にはHTML5の一部ですdev.w3.org/html5/spec/Overview.html#the-embed-element
Drew LeSueur

7
たとえ<embed>HTML5標準の一部であり、その私には思える<object>ので、古いブラウザとの互換性および代替コンテンツを表示する機能のより良い選択です。考え?
ラファエル

4
@raphaelcm悪魔の支持者を演じさせてください。古いブラウザとの互換性を維持することが重要である場合、HTMLは決して進化しません。ここで重要なのは、特にブラウザのバージョンに関する市場シェアです。
b1nary.atr0phy 2013

7
なぜこれが受け入れられるのですか?<embed>はHTML5標準タグだと思いました。
fabspro 2014

2
今後は<embed>の方が適していると思います。これはHTML5標準に含まれていますが、Objectの機能(属性)の多くは、埋め込みタグから機能を分離するために廃止されました。w3schools.com/tags/tag_object.aspオブジェクトタグはほとんど「スイスアーミーナイフ」タグのようですが、埋め込みはコンテンツをページに埋め込むために作成されたものです。
cmaynard

5

他のいくつかのオプション:

<object type="application/pdf" data="filename.pdf" width="100%" height="100%">
</object>

<object type="application/pdf" data="#request.localhost#_includes/filename.pdf" 
        width="100%" height="100%">
  <param name="src" value="#request.localhost#_includes/filename.pdf">
</object>

3

これはiframeメソッドを使用することもできますが、これはクロスブラウザー互換ではありません(例:chromiumやandroidで機能せず、おそらく他の人も->代わりにダウンロードを求めます)。dataURLと通常のURLで動作しますが、他の例がdataURLSで動作するかどうかはわかりません(他の例がdataURLSで動作するかどうか教えてください)。

 <iframe class="page-icon preview-pane" frameborder="0" height="352" width="396" src="data:application/pdf;base64, ..DATAURLHERE!... "></iframe>

3

おそらく、WebページでのPDF表示に最適なクロスブラウザーソリューションは、Mozilla PDF.jsプロジェクトコードを使用することです。これは、node.jsサービスとして実行し、次のように使用できます。

<iframe style="width:100%;height:500px" src="http://www.mysite.co.uk/libs/pdfjs/web/viewer.html?file="http://www.mysite.co.uk/mypdf.pdf"></iframe>

pdf.jsの使用方法に関するチュートリアルは、このイジェクタメンタのブログ記事にあります。


1

埋め込みは標準タグではありませんが、オブジェクトは標準タグです。ここだ記事状況はそれほど単純ではないようですので、それのように見えますが、あなたを助けることは。PDFの例が含まれています。


12
埋め込みは私にはかなり標準的なようです-少なくともHTML5では。
kapa

6
@bažmegakapaこれは確かに現在HTML5で標準になっていますが、彼が言及しているその記事は2008年に書かれており、彼の回答はHTML5よりも前の2009年からのものです。
b1nary.atr0phy 2013

2
@ b1naryatr0phyそれが私がコメントを追加した理由です。彼は私の見解で回答を更新または削除する必要があります。それはもう関係がないため、将来の訪問者を助けないためです。
kapa 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.