HTC简明教程

  在微软 (R)Internet Explorer 5 中介绍, HTML 组件 (HTCs) 提供一种机制来使用脚本作为动态 HTML(DHTML) 行为实现组件功能。以 .htc 扩展名保存,一份 HTC 是一份包含脚本和一组用于定义组件的 HTC 特殊元素的 HTML 文件。此部分包含相关元素和它们支持的成员。

  对象
document 在给定的浏览器窗口中表现 HTML 文档。
element 返回一份主文档中连接行为的标签的参考。
PUBLIC:ATTACH 绑定一个函数到一个事件上,因此每次事件发生在特殊对象上时函数会被调用。
PUBLIC:COMPONENT 以 HTC 指明文件的内容。
PUBLIC:DEFAULTS 设定一份 HTC 的默认属性。
PUBLIC:EVENT 定义一个 HTC 的事件,使之暴露于包含该 HTC 的文档。
PUBLIC:METHOD 定义一个 HTC 的方法,使之暴露于包含该 HTC 的文档。
PUBLIC:PROPERTY 定义一个 HTC 的属性,使之暴露于包含该 HTC 的文档。

 

  方法
createEventObject
创建一个事件对象,当需要传递事件附加信息给 PUBLIC:EVENT 元素的 fire 方法时使用。

  事件
oncontentready
连接了行为的元素的内容完全被解析时发生。
oncontentsave
连接了一份元素行为的一个元素的内容被保存或复制前发生。
ondetach
从一个元素解除一份行为的连接前发生。
ondocumentready
当包含行为的文档完全被解析时发生。

  PUBLIC:PROPERTY 元素
--------------------------------------------------------------------------------------
定义一个 HTC 的属性,使之暴露于包含该 HTC 的文档。

  格式
<PUBLIC:PROPERTY
GET = "sGetFunction"
ID = "sPropertyID"
INTERNALNAME = "sInternalName"
NAME = "sName"
PERSIST = "bPersist"
PUT = "sPutFunction"
value = "vvalue"
/>

  属性
GET
可选。指定属性值被获得时调用的函数的字符串。一个只指定了 GET 属性而没有指定 PUT 属性的 PUBLIC:PROPERTY 元素是一个只读属性。
ID
可选。组件内 PUBLIC:PROPERTY 元素的唯一识别字符串。这个属性类似于 DHTML 中的 ID 属性。
INTERNALNAME
可选。包含文档中指定方法提交的名称的字符串。这个内部的名称必须在组件内任意参考前广泛的关联;否则,一个脚本错误出现,指出名称未定义。如果没有内部的名称被指定,默认情况下使用 NAME 属性。
NAME
必选。 指定暴露给包含文档的属性的名称的字符串。默认情况下, NAME 的指定也用于组件内属性的提交,除非 INTERNALNAME 属性被指定。
PERSIST
可选。指定是否坚持属性作为叶面的部分的布尔值。
PUT
可选。指定属性值被设定时调用的函数的字符串。一个指定了 GET 和 PUT 属性的 PUBLIC:PROPERTY 元素是一个读写属性。一个 PUT 函数被指定,而指定 GET 函数指定失败,会导致该属性只可写,一般来说这是不希望出现的。
value
可选。指定属性默认值的变量。

  方法
propertyID.fireChange()
通报包含文档属性值在元素上发生 onpropertychange 事件时被改变。如果属性没有 PUT 属性被指定,在包含文档中属性被设定时 onpropertychange 会自动发生。

  元素信息
父级元素: PUBLIC:COMPONENT
子级元素:  无

备注
当指定 NAME 属性与一个已经为该元素定义的标准方法的名称相同时,一个行为可以重载元素的默认行为。
如果 PUT 或 GET 属性被指定, INTERNALNAME 属性被忽略。通过在 PUT 和 GET 属性中指定的函数来设定与 / 或获得属性值,优先级高于通过 INTERNALNAME 设定和 / 或获得属性值。
PUT 属性指定的函数必须注意包含文档中的元素使用 PUBLIC:PROPERTY 元素的 fireChange 方法改变属性值的情况。调用这个方法导致 onpropertychange 事件发生在包含文档的相应元素,同时 event 对象的 propertyName 设定为属性的名称。

  PUBLIC:METHOD 元素
--------------------------------------------------------------------------------------
定义一个 HTC 的方法,使之暴露于包含该 HTC 的文档。

  格式
<PUBLIC:METHOD
ID = "sID"
INTERNALNAME = "sInternalName"
NAME = "sName"
/>

  属性
ID
可选。组件内 PUBLIC:METHOD 元素的唯一识别字符串。这个属性类似于 DHTML 中的 ID 属性。
INTERNALNAME
可选。包含文档中指定方法提交的名称的字符串。默认情况下, NAME 也指定提交到组件内的方法,除非 INTERNALNAME 属性被指定。

  元素信息
父级元素
PUBLIC:COMPONENT
子级元素

最小运行环境
备注
当指定 NAME 属性与一个已经为该元素定义的标准方法的名称相同时,一个行为可以重载元素的默认行为。

 

PUBLIC:EVENT 元素
--------------------------------------------------------------------------------------
定义一个 HTC 的事件,使之暴露于包含该 HTC 的文档。

  格式
<PUBLIC:EVENT
ID = "sEventID"
NAME = "sName"
/>

  属性
ID
可选。组件内 PUBLIC:EVENT 元素的唯一识别字符串。这个属性类似于 DHTML 中的 ID 属性。
NAME
必选。指定主文档中提交的事件的名称的字符串。

  方法
eventID.fire([oEvent])
包含的文档发生事件。
这个方法有下面的参数:
oEvent
指定 event 对象包含的附加信息的对象。

  元素信息
父级元素
PUBLIC:COMPONENT
子级元素

备注
通过指定一个 NAME 属性,类似于一个已经为元素定义的标准事件,一个行为可以重载元素默认的行为。
行为定义的事件不起泡。它们只发生在连接了行为的元素上。

 

  PUBLIC:DEFAULTS 元素
--------------------------------------------------------------------------------------
设定一份 HTC 的默认属性。

格式
<PUBLIC:DEFAULTS
canHaveHTML = "bCanHaveHTML"
contentEditable = "bEditable"
style = "sStyle"
tabStop = "bIsTabStop"
viewInheritStyle = "bInheritsStyle"
viewLinkContent = "bViewLinkContent"
viewMasterTab = "bViewMasterTab"
/>

  属性
canHaveHTML
可选。指定为下列之中一个的布尔值。
false
HTC 文件定义的标签的内容不能包含 HTML 标签。
true
HTC 文件定义的标签的内容可以包含 HTML 标签。
contentEditable
可选。指定为下列之中一个的布尔值。
inherit
默认值。对象从它的父级继承内容被用户编辑的能力。
false
HTC 文件定义的标签的内容不能编辑。
true
HTC 文件定义的标签的内容可以编辑。
style
可选。指定 HTC 文件定义的标签的样式字符串。
tabStop
可选。指定为下列之中一个的布尔值。
false
默认值。 HTC 文件定义的标签不可被 TAB 选择激活。
true
HTC 文件定义的标签可以被 TAB 选择激活。
viewInheritStyle
可选。指定为下列之中一个的布尔值。
false
Viewlink 不从主 HTML 文件中继承样式。
true
默认值。 Viewlink 从主 HTML 文件中继承样式。
viewLinkContent
可选。指定为下列之中一个的布尔值。
false
默认值。 HTC 文件的文档中标签不作为 viewlink 使用。
true
HTC 文件的文档中标签作为 viewlink 使用。
viewMasterTab
可选。指定为下列之中一个的布尔值。
false
viewlink 的主元素不包含在主文档的 TAB 序列中。
true
默认值。 viewlink 的主元素包含在主文档的 TAB 序列中。

 

  元素信息
父级元素
PUBLIC:COMPONENT
子级元素

PUBLIC:COMPONENT 元素
--------------------------------------------------------------------------------------
以 HTC 指明文件的内容。

微软 Internet Explorer 6 中的新内容
literalContent 属性作为一个新的可能值支持嵌套,创建一份嵌套的文字内容元素行为。

格式
<PUBLIC:COMPONENT
ID = "sID"
lightWeight = "bLight"
literalContent = "sLiteral"
NAME = "sName"
supportsEditMode = "bEditable"
tagName = "sTagName"
URN = "sURN"
>
<!-- 子级元素 -->
</PUBLIC:COMPONENT>

属性
ID
可选。组件内 PUBLIC:COMPONENT 元素的唯一识别字符串。这个属性类似于 DHTML 中的 ID 属性。
lightWeight
可选。指定 HTC 文件是否包含标签的字符串。如果 HTC 文件不包含标签,这个属性应当设置为 true 来改进表现效果。这个属性对任何 HTC 文件均有效。
true
HTC 文件不包含标签,因而无需每次都解析并表现自定义标签。这些标签由 HTC 文件定义,在主文档中使用。
false
默认值。 HTC 包含必需解析并表现的自定义标签。这些标签由 HTC 文件定义,在主文档中使用。
literalContent
可选。指定自定义标签包含的内容是被解析并表现,还是作为数据岛处理的字符串。这个属性仅在 HTC 文件定义一个元素行为时有效,此时需要使用 tagName 属性。更多信息请查阅备注。
false
默认值。由 tagName 属性定义的标签内的文本和标签并作为数据岛处理,而是解析并表现。
nested
Internet Explorer 6 及后继版本。 Content within the first opening and last closing of the tag defined by the tagName attribute is treated as a data is lan d and is not parsed or rendered. 更多信息请查阅使用 literalContent 属性。
true
Content within the first opening and last closing of the tag defined by the tagName attribute is treated as a data is lan d and is not parsed or rendered.
NAME
可选。指定主文档中提交的行为的名称的字符串。
supportEditMode
可选。指定 HTC 文件内容是否可编辑的字符串。这个属性仅在 HTC 文件定义一个元素行为时有效。
true
HTC 文件包含的标签可编辑。
false
默认值。 HTC 文件包含的标签不可编辑。你能够通过对 HTC 文件中每个元素设定 isContentEditable 属性为 VARIANT_TRUE 来重载此属性值。
tagName
可选。指定自定义标签名称的字符串,此标签由 HTC 文件定义并导入到主文档中。这个属性仅在 HTC 文件定义一个元素行为时有效。更多信息请查阅备注。
URN
可选。字符串,以统一资源名称 (URN) 格式,从而唯一识别此组件。因而在多个行为发生在同一名称的事件时可以唯一的识别。当事件发生, event 对象的 srcUrn 属性被设定为发生在事件上行为的 URN 。

 

元素信息
子级元素
至多出现一次
PUBLIC:DEFAULTS
一或多次出现
PUBLIC:ATTACH , PUBLIC:EVENT , PUBLIC:METHOD , PUBLIC:PROPERTY
备注
PUBLIC:COMPONENT 元素可以定义两种截然不同类型的行为。一种是连接行为,使用 behavior 层叠样式表 (CSS) 属性来修改一个已经存在的元素的行为。第二种类型,在 Internet Explorer 5.5 中介绍,被称作一个元素行为。一个元素行为用来定义如标准的 HTML 标签一样在网页中使用的自定义标签。
一个元素行为意味着网页中一个自定义标签的创建和使用。因此,当 HTC 文件定义一个元素行为时有必要定义 PUBLIC:COMPONENT 元素的 tagName 属性。如先前指出的,此元素的部分属性为元素行为特别设计。更多信息清查询元素行为。
当多个行为连接到同一元素时, NAME 属性特别有用。因为它允许你调用包含文档中需要的行为的属性和方法。如果在一份文档中多个行为被连接到一个 <SPAN ID="mySpan"> 元素,你可以使用下面的格式来设定命名为 behaviorABC 的行为的 delay 属性。
mySpan.behaviorABC.delay = 1000;

PUBLIC:ATTACH 元素
--------------------------------------------------------------------------------------
绑定一个函数到一个事件上,因此每次事件发生在特殊对象上时函数会被调用。

格式
<PUBLIC:ATTACH
EVENT = "sEvent"
FOR = "sObject"
ID = "sID"
ONEVENT = "sEventHandler"
/>

 

属性
EVENT
必选。指定一个动态 HTML(DHTML) 事件、或任何在 HTC 参考中列举出的由 HTML 组件 (HTC) 指定事件的字符串。
FOR
可选。指定为下面值中一个的字符串,用来识别事件源。
document
引用 document 对象。
element
默认值。引用行为连接的元素。
window
引用 window 对象。
ID
可选。组件内 PUBLIC:ATTACH 元素的唯一识别字符串。这个属性类似于 DHTML 中的 ID 属性。
ONEVENT
必选。事件处理函数的直接声明或一份行内脚本的指定字符串。

元素信息
父级元素
PUBLIC:COMPONENT
子级元素

备注 < p>

 

PUBLIC:ATTACH 元素是 attachEvent 方法的一份声明。
当指定的事件发生在连接了行为的元素时,首先调用的是元素的事件处理部分,且在行为的事件处理前。如果多个行为被连接到一个元素,同时多个事件处理部分定义在同一元素的同一事件上,函数在元素事件处理部分调用后会随机地被调用。
当为 ONEVENT 提供一个值时,避免赋予事件处理部分函数一个已经存在的 DHTML 事件的名称。使用一个已经存在的 DHTML 事件的名称可能会递归错误。
事件的名称对所有脚本语言都是大小写敏感的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值