EMBED против OBJECT

Какой правильный/лучший тег использовать в моем HTML файле, когда я хочу отображать программу просмотра Adobe PDF? Прямо сейчас я использую код ниже, но есть странные побочные эффекты (например, он, кажется, украл начальный фокус, который я установил в другое текстовое поле INPUT, он, похоже, не очень хорошо работает с классом jQueryUI Resizeable и т.д.)

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

Могу ли я сделать то же самое с тегом OBJECT? Существуют ли преимущества/недостатки использования одного тега по сравнению с другим?

Ответы

Ответ 1

OBJECT vs. EMBED - почему не всегда использовать встраивание?

Итог: OBJECT is Good, EMBED - Старый. Помимо тегов IE PARAM, любой контент между тегами OBJECT будет отображаться, если браузер не поддерживает подключенный OBJECT плагин, и, по-видимому, контент получает HTTP-запрос независимо от того, будет ли он отображаться или нет.

object - это текущий стандартный тег для встраивания чего-либо на страницу. embed был включен Netscape (вдоль img), прежде чем что-либо вроде object было на w3c mind.

Вот как вы включают 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 файл, который будет отображаться почти в каждом браузере, как понимают старые браузеры embed, но не object, вам нужно будет сделать это:

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

Эта версия не проверяет.

Ответ 2

Некоторые другие опции:

<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, хотя это не совместимо с перекрестным браузером (например, не работает в хром или андроид и, возможно, другие → вместо этого запрашивает загрузку). Он работает с dataURL и обычными URLS, не уверен, что другие примеры работают с dataURLS (пожалуйста, дайте мне знать, работают ли другие примеры с dataURLS?)

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

Ответ 4

Встраивание не является стандартным тегом, хотя объект есть. Здесь статья, которая выглядит так, как вам поможет, поскольку ситуация кажется не такой простой. Пример для PDF включен.

Ответ 5

Наверное, лучшим решением для браузера для просмотра 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 можно найти в этой статье статьи ejectamenta