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. http://www.yousite.com/time.html

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

  1. http://www.yousite.com.cn/clock.class

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

codebase 属性

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

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

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

  1. <object classid="clock.class" codebase="http://www.baidu.com/classes/">
  2. </object>

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

  1. http://www.baidu.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 属性允许包含几乎任何文件类型,而不仅仅是图像文件。