EMBED与OBJECT

时间:2009-08-07 13:47:22

标签: html html5 pdf embed-tag

当我想要显示Adobe PDF查看器时,哪个是在我的HTML文件中使用的最佳/最佳标记?现在我正在使用下面的代码,但是有一些奇怪的副作用(例如它似乎窃取了我设置到另一个INPUT文本框的起始焦点;它似乎与jQueryUI Resizeable类没有很好地兼容等等。)

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

我甚至可以用OBJECT标签做同样的事情吗?使用一个标签与另一个标签有利有弊吗?

6 个答案:

答案 0 :(得分:156)

OBJECT vs. EMBED - why not always use embed?

  

底线:OBJECT很好,EMBED很老。除了IE的PARAM标签之外,如果浏览器不支持OBJECT的引用插件,OBJECT标签之间的任何内容都将被呈现,并且显然,无论是否呈现,内容都会获得http请求。

object是在网页上嵌入内容的当前标准代码。在object之前<object data="data/test.pdf" type="application/pdf" width="300" height="200"> alt : <a href="data/test.pdf">test.pdf</a> </object> 之前embed was included by Netscape (along img)之前的w3c

这就是你include a PDF with object

的方法
embed

如果您确实需要几乎所有浏览器都会显示内联PDF,因为旧浏览器了解object而不是<object data="abc.pdf" type="application/pdf"> <embed src="abc.pdf" type="application/pdf" /> </object> ,您需要这样做:< / p>

{{1}}

此版本无法验证

答案 1 :(得分:4)

其他一些选择:

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

答案 2 :(得分:3)

你也可以使用iframe方法,虽然这不是跨浏览器兼容的(例如,不能在chrome或android中工作,可能还有其他方法 - &gt;而是提示下载)。它适用于dataURL和普通URL,不确定其他示例是否与dataURLS一起工作(请告诉我其他示例是否与dataURLS一起使用?)

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

答案 3 :(得分:2)

网页上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>

可以在此ejectamenta blog article

找到有关如何使用pdf.js的教程

答案 4 :(得分:1)

虽然对象是,但嵌入不是标准标记。这里的an article看起来会对你有所帮助,因为看起来情况并非如此简单。包含PDF的示例。

答案 5 :(得分:1)

2020年更新的答案:

WHAT-WG HTML生活标准 (2020年9月)中都包含<object><embed>


<object>

object元素可以代表一个外部资源, 根据资源的类型,将被视为 图片,作为子浏览上下文或作为外部资源 由插件处理。


<embed>

embed元素为外部(通常是非HTML)应用程序或交互式内容提供集成点。


使用一个标签相对于另一个标签是否有优点/缺点?

Mozilla开发人员网络(MDN)opinion似乎(虽然相当巧妙)对<object>的支持程度略高于<embed>,但MDN绝大多数希望建议您尽可能避免完全嵌入外部内容。

[...]您不太可能使用这些元素-小程序 多年没有使用过,Flash不再流行,原因是 原因数量(请参阅下面的针对插件的案例),PDF倾向于 与嵌入式和其他内容(例如图像)相比,链接更好 和视频具有更好,更容易处理的元素。外挂程式 这些嵌入方法确实是一种传统技术, 主要是提到它们,以防您在某些情况下遇到它们 内部网或企业项目之类的情况。

从前,插件在网络上必不可少。记住 您必须安装Adobe Flash Player才能看电影的日子 线上?然后,您不断收到有关更新的烦人警报 Flash Player和Java运行时环境。网络技术有 自从变得更加强大之后,那些日子就结束了。对于虚拟 所有应用程序,是时候停止交付依赖于 插件并开始利用Web技术。

来源: https://developer.mozilla.org/en-US/docs/Learn/HTML/Multimedia_and_embedding/Other_embedding_technologies#The_%3Cembed%3E_and_%3Cobject%3E_elements