HTC 简介

HTC是 HTML Component 的缩写,是 IE5.0 的主要扩展之一,除了具备一般组件的可重用优点之外,还具有易于开发使用等优点。
HTML 组件(HTCs)在脚本中作为动态 HTML(DHTML) 行为为工具组件提供机制。HTC 是一种 HTML 文件,它包含脚本和一组 HTC --可以定义组件的特殊元素,以 .htc 为后缀名。这里列出了这些元素和它们所支持的部分。HTC所支持的对象如表2.5.1.1所示,支持的方法如表2.5.1.2所示,支持的事件如表2.5.1.3所示。

表2.5.1.1 HTC对象
对象说明
document 表示在给定的浏览器窗口中的HTML文档
element 返回一个附加在行为上的主文档中的标签参考(可以省略)
PUBLIC:ATTACH 绑定函数到事件中,使函数响应指定对象上的事件
PUBLIC:COMPONENT 识别HTC文件的内容
PUBLIC:DEFAULTS 设置 HTC 的默认属性
PUBLIC:EVENT 给包含文档显式定义一个 HTC 事件
PUBLIC:METHOD 给包含文档显式定义一个 HTC 方法
PUBLIC:PROPERTY 给包含文档显式定义一个 HTC 属性

表2.5.1.2 HTC方法
方法说明
createEventObject: 创建一个事件对象,当把短暂事件的环境信息传送到PUBLIC:EVENT元素的发生方式中时,可以使用这个对象

表2.5.1.3 HTC事件
事件说明
oncontentready: 当行为所附着的元素被完全解析时触发
oncontentsave: 当附加在一个元素行为的上的元素内容被保存或者复制之前触发
ondetach: 当行为和元素分离时触发
ondocumentready: 当行为的包含文档被完全解析时触发

HTC的语法格式
与 HTML 文件一样,HTC文件也有一个固定的格式,虽然很多格式可以省略,但初学时还是希望读者都能严格按格式书写代码。
1.根元素<publick:component>。
写在 HTC 文件的首行和末行位置,大概相当于 HTML 文件中的 <html> 标签:
<publick:component>
<!--子元素-->
</publick:component>

2.各子元素说明。
(1)PUBLIC:DEFAULTS元素
语法(属性如表2.5.2.1所示) :
<PUBLIC:DEFAULTS
canHaveHTML = "bCanHaveHTML"
contentEditable = "bEditable"
style = "sStyle"
tabStop = "bIsTabStop"
viewInheritStyle = "bInheritsStyle"
viewLinkContent = "bViewLinkContent"
viewMasterTab = "bViewMasterTab"
/>
表2.5.2.1 PUBLIC:DEFAULTS元素属性
属性说明
canHaveHTML获取表明对象是否可以包含子对象的值。 可选项,值:true 或 false。
contentEditable设置或获取表明用户是否可编辑对象内容的字符串。可选项,值:true 或 false。
style设置或获取HTC文件定义的标签样式。可选项。
tabStop设置或获取由HTC文件定义的标签是否可以通过 tab 键激活。 可选项,值:true 或 false。
viewInheritStyle设置或获取 viewlink 是否继承HTML主文件的样式。 可选项,值:true 或 false。
viewLinkContent设置或获取HTC文档中的标记是否用作 viewlink。 可选项,值:true 或 false。
viewMasterTab设置或获取 viewlink 的主要元素是否包括在主文档的 tab 索引中。 可选项,值:true 或 false。
(2)PUBLIC:ATTACH
语法(属性如表2.5.2.2所示):
<PUBLIC:ATTACH
ID = "sID"
EVENT = "sEvent"
FOR = "sObject"
ONEVENT = "sEventHandler"
/>

表2.5.2.2 PUBLIC:ATTACH元素属性
属性说明
EVENT必选项。指定 DHTML 或任意 HTC 参考中列出的事件名
FOR可选项。指定 document、element 或 window 中的一个来标识源事件
ID可选项。设置组件中的 PUBLIC:ATTACH 的唯一标识,类似 DHTML 中的 ID 属性
ONEVENT必选项。指定一行脚本或一个处理事件的函数
HANDLER必选项。指定处理事件的函数名
注意:HANDLER 和 ONEVENT 只能用一个,用 HANDLER 的话只需指定函数名

(3)PUBLIC:EVENT
语法(属性和方法分别如表2.5.2.3、2.5.2.4所示):
<PUBLIC:EVENT
ID = "sEventID"
NAME = "sName"
/>
表2.5.2.3 PUBLIC:EVENT元素属性
属性说明
ID可选项。设置组件中的 PUBLIC:EVENT 的唯一标识,类似 DHTML 中的 ID 属性
NAME必选项。指定包含文档中显式事件的名称

表2.5.2.4 PUBLIC:EVENT元素方法
方法说明
eventID.fire(oEvent)触发包含文档的事件,oEvent 为指定包含关联信息事件对象的对象

(4)PUBLIC:METHOD
语法(属性如表2.5.2.5所示):
<PUBLIC:METHOD
ID = "sID"
INTERNALNAME = "sInternalName"
NAME = "sName"
/>
表2.5.2.5 PUBLIC:METHOD元素属性
属性说明
ID可选项。设置组件中的 PUBLIC:EVENT 的唯一标识,类似 DHTML 中的 ID 属性
INTERNALNAME可选项。指定名称,名称由组件中提及的方法命名。如果不指定值,NAME属性为默认。
NAME必选项。指定名称,名称由包含文档中提及的方法命名。默认情况下,指定的NAME也可用于组件中所指的方法,除非指定了INTERNALNAME属性。

(5)PUBLIC:PROPERTY
语法(属性和方法分别如表2.5.2.6、表2.5.2.7所示):
<PUBLIC:PROPERTY
GET = "sGetFunction"
ID = "sPropertyID"
INTERNALNAME = "sInternalName"
NAME = "sName"
PERSIST = "bPersist"
PUT = "sPutFunction"
VALUE = "vValue"
/>
表2.5.2.6 PUBLIC:PROPERTY 元素属性
属性说明
GET可选项。指定函数,每当获取属性值时,函数会有响应。A PUBLIC:PROPERTY元素用来指定GET属性为只读,此GET属性无须指定PUT属性。
ID可选项。唯一识别组件内的PUBLIC:PROPERTY元素。类似于DHTML中的ID属性。 INTERNALNAME可选项。指定名称,由组件中提及的属性命名。内部的名称必须公开,才能在组件内任何地方被引用,否则,会出现脚本错误,
显示名称不可定义。如果不定义内部名称,NAME属性为默认。
NAME必选项。指定包含文档中显式属性的名称。默认情况下,指定的NAME也可用于组件中所指的方法,除非指定了INTERNALNAME属性。
PERSIST可选项。指定是否要持续部分页面的属性。
PUT可选项。指定函数,当设置属性值时,函数会有响应。PUBLIC:PROPERTY元素用来指定GET和PUT属性为可读写。当指定PUT功能时,
不能指定GET函数,使属性为只写,通常不期望出现这种情况。
VALUE可选项。指定属性的默认值。


表2.5.2.7 PUBLIC:PROPERTY 元素方法
方法说明
propertyID.fireChange()通知包含文档,通过触发元素中onpropertychange事件,而改变文档的属性值。
如果在属性中不指定PUT属性,在包含文档中设置属性时,则自动触发onpropertychange。


3.在页面中使用 HTC。
因为 HTC 是以行为形式出现的,所有问题主要是设置元素的 style 对象的 behavior 属性。代码示例(先假设同目录下存在名为 demo.htc 的HTC文件):
<button style="behavior:url(demo.htc)">demo</button>

<style>
button{behavior:url(demo.htc)}
</style>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值