HTML <object> 标签

实例

向 HTML 代码添加一个对象:

  1. <object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1"
  2. width="100" height="50">
  3. <param name="BorderStyle" value="1" />
  4. <param name="MousePointer" value="0" />
  5. <param name="Enabled" value="1" />
  6. <param name="Min" value="0" />
  7. <param name="Max" value="10" />
  8. </object>

浏览器支持

元素 Chrome Internet Explorer / Edge Firefox Safari Opera
<object> Yes Yes Yes Yes Yes

几乎所有主流浏览器都拥有部分对 <object> 标签的支持。

定义和用法

定义一个嵌入的对象。请使用此元素向您的 XHTML 页面添加多媒体。此元素允许您规定插入 HTML 文档中的对象的数据和参数,以及可用来显示和操作数据的代码。

<object> 标签用于包含对象,比如图像、音频、视频、Java applets、ActiveX、PDF 以及 Flash。

object 的初衷是取代 img 和 applet 元素。不过由于漏洞以及缺乏浏览器支持,这一点并未实现。

浏览器的对象支持有赖于对象类型。不幸的是,主流浏览器都使用不同的代码来加载相同的对象类型。

而幸运的是,object 对象提供了解决方案。如果未显示 object 元素,就会执行位于 <object></object> 之间的代码。通过这种方式,我们能够嵌套多个 object 元素(每个对应一个浏览器)。

HTML 与 XHTML 之间的差异

NONE

提示和注释:

注释<param> 标签定义用于对象的 run-time 设置。

注释:不要对图像使用 <object> 标签,请使用 <img> 标签代替。

可选的属性

属性 描述
align left
right
top
bottom
定义围绕该对象的文本对齐方式。
archive URL 由空格分隔的指向档案文件的 URL 列表。这些档案文件包含了与对象相关的资源。
border pixels 定义对象周围的边框。
classid class ID 定义嵌入 Windows Registry 中或某个 URL 中的类的 ID 值,此属性可用来指定浏览器中包含的对象的位置,通常是一个 Java 类。
codebase URL 定义在何处可找到对象所需的代码,提供一个基准 URL。
codetype MIME type 通过 classid 属性所引用的代码的 MIME 类型。
data URL 规定对象要使用的资源的 URL。
declare declare 可定义此对象仅可被声明,但不能被创建或例示,直到此对象得到应用为止。
form object - 图6 form_id 规定对象所属的一个或多个表单。
height pixels 定义对象的高度。
hspace pixels 定义对象周围水平方向的空白。
name name 规定 <object> 元素的名称。
standby text 定义当对象正在加载时所显示的文本。
type media_type 规定对象的 Internet 媒体类型。
usemap #mapname 规定与对象一起使用的图像映射的名称。
vspace pixels 定义对象的垂直方向的空白。
width pixels 定义对象的宽度。

全局属性

<object> 标签支持 HTML 中的全局属性

事件属性

<object> 标签支持 HTML 中的事件属性

相关页面

HTML DOM 参考手册:Object 对象

HTML <object> 标签的重要属性

archive 属性

因为性能方面的原因,可以选择预先下载包含一个或多个档案中的对象集。对基于 Java 的应用程序来说尤其是这样,在这些应用程序中,一个 Java 类将会依赖于很多其他类才能完成它的工作。

archive 属性的值是一个用引号括起来的 URL 列表,其中每个 URL 都指向一个在显示或执行对象之前浏览器需要加载的档案文件。

classid 属性

classid 属性用于指定浏览器中包含的对象的位置,通常是一个 Java 类。

它的值是对象的绝对或相对的 URL。如果提供了 codebase 属性的话,相对 URL 是相对于 codebase 属性指定的 URL 而言的;否则,它们是相对于当前文档的 URL。

例如,为了执行包含在 clock.class 文件中的时间 Java applet,可以在 HTML 文档中包含如下的代码:

  1. <object classid="clock.class"></object>

浏览器将会用当前文档的基本 URL 为这个 applet 查找代码。因此,如果当前文档的 URL 如下所示:

  1. https://ctrlasd.com/time.html

浏览器将会在下列地址为我们的 clock.class 实例获取 applet 代码:

  1. https://ctrlasd.com/clock.class

提示:classid 属性与 <applet> 标签的 code 属性类似,提供了包含这个对象的文件名。

codebase 属性

codebase 属性是一个可选的属性,提供了一个基本的 URL。该属性的值是一个 URL,该 URL 指向的目录包含了 classid 属性所引用的对象。

codebase URL 会覆盖文档的基本 URL,但不会永久替代它。如果不使用 codebase 属性,这个基本 URL 就是默认值。

现在,我们继续使用前面的那个例子,假设文档来源于 https://ctrlasd.com ,但是这个时钟 applet 放在一个名为 classes 的单独目录中。通过指定 classid= “classes/clock.class” 无法获得这个 applet。相反,需要将 codebase 属性和新的基本 URL 包含在内:

  1. <object classid="clock.class" codebase="https://ctrlasd.com/classes/">
  2. </object>

这行语句可以解析为这个 URL:

  1. https://ctrlasd.com/classes/clock.class

尽管我们在此例中使用了绝对 URL,实际上也可以使用相对 URL。例如,applet 往往和主机文档一起保存在同一台服务器上,因此,处于重新定位的缘故,为 codebase 指定一个相对的 URL,情况往往更好一些,例如:

  1. <object classid="clock.class" codebase="/classes/">
  2. </object>

提示:从以上几个例子可以看到,codebase 属性与 classid 属性配合使用,可以指定对象的完整 URL。

codetype 属性

codetype 属性用于标识程序代码类型。

只有在浏览器无法根据 classid 属性决定 applet 的 MIME 类型,或者如果在下载某个对象时服务器没有传输正确的 MIME 类型的情况下,才需要使用 codetype 属性。

codetype 属性与 type 属性类似。不同的是,它用来标识程序代码类型,而 type 属性用来标识数据文件类型。

下面这个例子显式地告知浏览器,对象的代码是 Java:

  1. <object codebase="clock.class" codetype="application/java">
  2. </object>

declare 属性

declare 属性可以定义一个对象,但同时防止浏览器进行下载和处理。

与 name 属性一起使用时,这个工具类似于更为传统的编程语言中的某种前置声明,这样的声明能够延迟下载对象的时间,直到这个对象确实在文档中得到了应用。

data 属性

data 属性用于指定供对象处理的数据文件的 URL。

该属性的值是文件的 URL,该 URL 可能是相对于文件基本 URL 的绝对 URL 或相对 URL,或者是相对于用 codebase 属性提供的 URL 的绝对或相对 URL。

浏览器通过插入到文档中的对象类型来决定数据的类型。

该属性类似于 <img> 标签中的 src 属性,因为它下载的是要由包含对象进行处理的数据。当然,它们之间的差别在于,data 属性允许包含几乎任何文件类型,而不仅仅是图像文件。