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