HTML <object>
标签
实例
向 HTML 代码添加一个对象:
<object classid="clsid:F08DF954-8592-11D1-B16A-00C0F0283628" id="Slider1"
width="100" height="50">
<param name="BorderStyle" value="1" />
<param name="MousePointer" value="0" />
<param name="Enabled" value="1" />
<param name="Min" value="0" />
<param name="Max" value="10" />
</object>
浏览器支持
元素 | |||||
---|---|---|---|---|---|
<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 | 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 文档中包含如下的代码:
<object classid="clock.class"></object>
浏览器将会用当前文档的基本 URL 为这个 applet 查找代码。因此,如果当前文档的 URL 如下所示:
https://ctrlasd.com/time.html
浏览器将会在下列地址为我们的 clock.class 实例获取 applet 代码:
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 包含在内:
<object classid="clock.class" codebase="https://ctrlasd.com/classes/">
</object>
这行语句可以解析为这个 URL:
https://ctrlasd.com/classes/clock.class
尽管我们在此例中使用了绝对 URL,实际上也可以使用相对 URL。例如,applet 往往和主机文档一起保存在同一台服务器上,因此,处于重新定位的缘故,为 codebase 指定一个相对的 URL,情况往往更好一些,例如:
<object classid="clock.class" codebase="/classes/">
</object>
提示:从以上几个例子可以看到,codebase 属性与 classid 属性配合使用,可以指定对象的完整 URL。
codetype 属性
codetype 属性用于标识程序代码类型。
只有在浏览器无法根据 classid 属性决定 applet 的 MIME 类型,或者如果在下载某个对象时服务器没有传输正确的 MIME 类型的情况下,才需要使用 codetype 属性。
codetype 属性与 type 属性类似。不同的是,它用来标识程序代码类型,而 type 属性用来标识数据文件类型。
下面这个例子显式地告知浏览器,对象的代码是 Java:
<object codebase="clock.class" codetype="application/java">
</object>
declare 属性
declare 属性可以定义一个对象,但同时防止浏览器进行下载和处理。
与 name 属性一起使用时,这个工具类似于更为传统的编程语言中的某种前置声明,这样的声明能够延迟下载对象的时间,直到这个对象确实在文档中得到了应用。
data 属性
data 属性用于指定供对象处理的数据文件的 URL。
该属性的值是文件的 URL,该 URL 可能是相对于文件基本 URL 的绝对 URL 或相对 URL,或者是相对于用 codebase 属性提供的 URL 的绝对或相对 URL。
浏览器通过插入到文档中的对象类型来决定数据的类型。
该属性类似于 <img>
标签中的 src 属性,因为它下载的是要由包含对象进行处理的数据。当然,它们之间的差别在于,data 属性允许包含几乎任何文件类型,而不仅仅是图像文件。