<embed> ve <object>


164

Adobe PDF görüntüleyicisini görüntülemek istediğimde HTML dosyamda kullanılacak doğru / en iyi etiket hangisi?

Şu anda aşağıdaki kodu kullanıyorum, ancak garip yan etkileri var (örneğin, başka bir <input>metin kutusuna ayarladığım başlangıç ​​odağını çalıyor gibi görünüyor; jQueryUI Resizeable sınıfıyla çok iyi oynamıyor gibi görünmüyor; vb.)

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

<object>Etikette de aynı şeyi yapabilir miyim ? Bir etiketi diğerine karşı kullanmanın avantajları / dezavantajları var mı?


21
Ve şimdi HTML5'te <embed>? En iyi yol nedir?
VinnyG

@VinnyG <embed>artık resmi olarak HTML5 ile standart bir etikettir, ancak eski tarayıcı sürümleriyle ilgili en azından bazı uyumluluk sorunlarını tahmin etmelisiniz .
b1nary.atr0phy

Yanıtlar:


169

NEDEN ve EMBED - neden her zaman embed kullanmıyor?

Alt satır: NESNE İyi, EMBED Eski. IE'nin PARAM etiketlerinin yanı sıra, tarayıcı OBJECT'in belirtilen eklentisini desteklemiyorsa, OBJECT etiketleri arasındaki herhangi bir içerik oluşturulur ve görünüşe göre içerik, oluşturulup oluşturulmadığına bakılmaksızın http istenir.

objectsayfaya bir şey gömmek için geçerli standart etikettir. embedNetscape (boyunca tarafından dahil img) böyle bir şey daha önce objectvardı W3C zihin.

Şu şekilde bir PDF eklersinizobject :

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

Eski tarayıcıların hemen hemen her tarayıcıda gösterilmesi için gerçekten PDF'ye ihtiyacınız varsa , eski tarayıcıların anladığı gibi embeddeğil object, bunu yapmanız gerekir:

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

Bu sürüm geçerli değil .


47
<embed> aslında HTML5'in bir parçasıdır dev.w3.org/html5/spec/Overview.html#the-embed-element
Drew LeSueur

7
<embed>HTML5 standardının bir parçası olmasına rağmen bana öyle geliyor ki<object> eski tarayıcılarla uyumluluk ve alternatif içerik görüntüleme yeteneği nedeniyle daha iyi bir seçim olduğunu düşünüyorum. Düşünceler?
Raphael

4
@raphaelcm Şeytanın avukatını oynamama izin ver. Eski tarayıcılarla uyumluluğu korumak bu kadar önemli olsaydı, HTML asla evrimleşmezdi. Burada önemli olan , özellikle tarayıcı sürümleriyle ilgili pazar payıdır .
b1nary.atr0phy

7
Bu neden kabul edildi? <embed> 'in HTML5 standart etiketi olduğunu düşündüm.
fabspro

2
<embed> 'in daha iyi bir seçim olacağını düşünürdüm. HTML5 standardındadır, Object'in işlevlerinin çoğunu gömme etiketinden ayırmak için birçok özelliği (niteliği) kullanımdan kaldırılmıştır. w3schools.com/tags/tag_object.asp Yerleştirilen içeriğin bir sayfaya gömülmesi amacıyla oluşturulmuşken, nesne etiketinin neredeyse bir 'İsviçre çakısı' etiketi olduğu anlaşılıyor.
cmaynard

5

Diğer bazı seçenekler:

<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

Bu, çapraz tarayıcı uyumlu olmasa da iframe yöntemini de kullanabilirsiniz (örn. Krom veya android ve muhtemelen diğerleri -> yerine indirmeyi ister). DataURL ve normal URL'lerle çalışır, diğer örneklerin dataURLS ile çalışıp çalışmadığından emin değilim (lütfen diğer örneklerin dataURLS ile çalışıp çalışmadığını bize bildirin?)

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

3

Muhtemelen web sayfalarında pdf görüntüleme için en iyi çapraz tarayıcı çözümü Mozilla PDF.js proje kodunu kullanmaktır, bir node.js hizmeti olarak çalıştırılabilir ve aşağıdaki gibi kullanılabilir

<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>

Bu ejectamenta blog makalesinde pdf.js'nin nasıl kullanılacağına dair bir eğitim bulabilirsiniz


1

Gömme, nesne olsa da standart bir etiket değildir. İşte size yardımcı olacak gibi görünen bir makale , çünkü durum o kadar basit değil. PDF için bir örnek dahildir.


12
Gömme benim için oldukça standart görünüyor - en azından HTML5'te.
kapa

6
@ bažmegakapa Şu an HTML5 için kesinlikle standart, ancak bahsettiği makale 2008'de yazıldı ve cevabı HTML5'ten önce gelen 2009'dan.
b1nary.atr0phy

2
@ b1naryatr0phy Bu yüzden yorumu ekledim. Benim görüşüme göre cevabı ya güncellemeli ya da kaldırmalı, çünkü artık alakalı değil, bu yüzden gelecekteki ziyaretçilere yardımcı olmayacak.
kapa
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.