Osadzanie a obiekt

Który tag jest odpowiedni/najlepszy do użycia w moim pliku HTML, gdy chcę wyświetlić przeglądarkę Adobe PDF viewer? W tej chwili używam poniższego kodu, ale są dziwne efekty uboczne (np. wydaje się, że kradnie początkowy fokus, który ustawiłem na inne pole tekstowe; nie wydaje się grać naprawdę dobrze z klasą jQueryUI Resizeable; itp.)

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

Czy Mogę zrobić to samo z tagiem OBJECT? Czy istnieją zalety/wady używania jednego tagu w porównaniu z drugim?

Author: James A Mohler, 2009-08-07

5 answers

Obiekt vs. EMBED-dlaczego nie zawsze używać embed?

Podsumowując: obiekt jest dobry, EMBED jest stary. Obok znaczników param IE, każda zawartość między znacznikami obiektu zostanie renderowana, jeśli przeglądarka nie obsługuje wtyczki obiektu, o której mowa, i najwyraźniej zawartość dostaje żądanie http niezależnie od tego, czy zostanie renderowana, czy nie.

object jest bieżącym standardowym znacznikiem do osadzenia czegoś na stronie. embed został dołączony przez Netscape (wraz img) przed wszystko jak object było na W3C umysł.

Tak można załączyć plik PDF z object:

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

Jeśli naprawdę potrzebujesz wbudowanego pliku PDF do wyświetlania w prawie każdej przeglądarce, ponieważ starsze przeglądarki rozumieją embed, ale nie object, Musisz to zrobić:

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

Ta wersja nie sprawdza.

 147
Author: Esteban Küber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-11-05 11:40:11

Niektóre inne opcje:

<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
Author: aguz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-11-08 14:31:49

Możesz również użyć metody iframe, chociaż nie jest to kompatybilne z przeglądarką (np. nie działa w chromium lub Androidzie i prawdopodobnie innych - > zamiast tego prosi o pobranie). Działa z adresami URL dataURL i normalnymi, Nie wiem, czy inne przykłady działają z dataURLS (proszę dać mi znać, czy inne przykłady działają z dataURLS?)

 <iframe class="page-icon preview-pane" frameborder="0" height="352" width="396" src="data:application/pdf;base64, ..DATAURLHERE!... "></iframe>
 3
Author: ejectamenta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-07-24 17:18:32

Prawdopodobnie najlepszym rozwiązaniem cross browser do wyświetlania plików pdf na stronach internetowych jest użycie Mozilli PDF.Kod projektu js, może być uruchamiany jako węzeł.js service i używane w następujący sposób

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

Tutorial Jak korzystać z pdf.js można znaleźć na tym ejectamenta blog Artykuł

 2
Author: ejectamenta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-18 10:45:07

Embed nie jest standardowym znacznikiem, choć obiekt jest. Oto Artykuł, który wygląda na to, że ci pomoże, ponieważ wydaje się, że sytuacja nie jest taka prosta. Dołączony jest przykład PDF.

 1
Author: aehlke,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-07 14:01:53