EMBED与OBJECT

Jay*_*n93 156 html pdf embed-tag

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

<embed src="abc.pdf" type="application/pdf" />
Run Code Online (Sandbox Code Playgroud)

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

Est*_*ber 165

OBJECT与EMBED - 为什么不总是使用嵌入?

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

object是在页面上嵌入内容的当前标准标记.embed被列入由Netscape(沿img)任何东西之前一样object是在W3C的头脑.

这是您包含PDF的方式object:

<object data="data/test.pdf" type="application/pdf" width="300" height="200">
  alt : <a href="data/test.pdf">test.pdf</a>
</object>
Run Code Online (Sandbox Code Playgroud)

如果您确实需要几乎所有浏览器都能显示内联PDF,那么旧版浏览器可以理解embed但不是object,您需要这样做:

<object data="abc.pdf" type="application/pdf">
    <embed src="abc.pdf" type="application/pdf" />
</object>
Run Code Online (Sandbox Code Playgroud)

此版本无法验证.

  • <embed>实际上是HTML5的一部分http://dev.w3.org/html5/spec/Overview.html#the-embed-element (44认同)
  • 为什么接受这个?我认为<embed>是HTML5标准标签. (7认同)
  • 尽管`<embed>`是HTML5标准的一部分,但在我看来,`<object>`是更好的选择,因为它与旧浏览器的兼容性和显示替代内容的能力.思考? (6认同)
  • @raphaelcm请允许我扮演魔鬼的拥护者.如果保持与过时浏览器的兼容性非常重要,HTML将永远不会发展.[这里重要的是市场份额](http://www.w3counter.com/globalstats.php),特别是关于浏览器版本. (4认同)
  • 我认为<embed>将是未来更好的选择.它在HTML5标准中,而Object有许多功能(属性)已弃用,以便将其功能与embed标签分开.http://www.w3schools.com/tags/tag_object.asp在我看来,对象标签几乎是一个"瑞士军刀"标签,而嵌入是专门用于将内容嵌入到页面中. (2认同)
  • 一个区别是没有src的嵌入会产生嵌入式功能的实例.您可以在embed上交换src属性(例如使用jquery),但是不能在对象上交换数据属性. (2认同)

Rou*_*ica 7

2020 年更新的答案:

双方<object><embed>都包含在WHAT-WG HTML生活水平 (9月2020)


<object>

object 元素可以表示外部资源,根据资源的类型,该资源将被视为图像、子浏览上下文或由插件处理的外部资源。


<embed>

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


使用一种标签与另一种标签有什么优点/缺点吗?

意见Mozilla开发者网络(MDN)出现(尽管是相当微妙的)非常轻微偏向<object>过度<embed>,但是,绝大多数,MDN想建议您随时随地可以,你完全避免嵌入外部内容。

[...] 您不太可能经常使用这些元素 — Applet 已多年未使用,Flash 不再流行,原因有很多(请参阅下面的插件案例),PDF 倾向于链接比嵌入更好,并且其他内容(例如图像和视频)有更好、更容易处理的元素。插件和这些嵌入方法确实是一项遗留技术,我们主要是为了以防万一您在某些情况下(如 Intranet 或企业项目)遇到它们。

曾几何时,插件在 Web 上是必不可少的。还记得您必须安装 Adob​​e Flash Player 才能在线观看电影的日子吗?然后,您不断收到有关更新 Flash Player 和 Java 运行时环境的烦人警报。自那以后,Web 技术变得更加强大,而那些日子已经一去不复返了。对于几乎所有的应用程序,是时候停止提供依赖插件的内容并开始利用 Web 技术了。

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

  • 除了插件之外,两者还有其他用途。SVG(也可以使用 &lt;svg&gt; 或 &lt;img&gt;,但有细微的差别...)和 PDF 是两种常见的。 (4认同)

小智 6

其他一些选择:

<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>
Run Code Online (Sandbox Code Playgroud)