添加一个属性的setter, getter

建立一个页面

<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<style>
input{
behavior: url(bordercolor_htc.htc);
}
</style>
<script>
window.onload = function() {
var el = document.getElementById("tid")
el.borderColor = "red";
alert(el.borderColor)
}
</script>
</head>
<body>
<div>
<input type="text" id="tid" value="司徒正美" />
</div
</body>
</html>

建议一个htc文件,与刚才的页面放在同一页面上

<public:component>
<public:property name="borderColor" get="getBorderColor" put="setBorderColor" />
<script type="text/javascript">
function setBorderColor(vValue) {
element.style.border = "1px solid "+ vValue
} function getBorderColor() {
return element.style.borderColor +"~!"
}
</script>
</public:component>

上面的可以精简成这样

<component>
<property name="borderColor" get="getBorderColor" put="setBorderColor" />
<script>
function setBorderColor(vValue) {
element.style.border = "1px solid "+ vValue
} function getBorderColor() {
return element.style.borderColor +"~!"
}
</script>
</component>

绑定事件

<!DOCTYPE html>
<html>
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width">
<style>
h1{
behavior: url(hover_htc.htc);
}
</style>
<script> </script>
</head>
<body>
<div>
<h1>司徒正美</h1>
</div
</body>
</html>

对应的HTC

<component>
<public:attach event="onmouseover" onevent="over()" />
<public:attach event="onmouseout" onevent="out()" />
<script>
function over() {
this.style.color = "red"
}
    
function out() {
this.style.color = "blue"
}
</script>
</component>

上面的this可以省略或改成element

<component>
<public:attach event="onmouseover" onevent="over()" />
<public:attach event="onmouseout" onevent="out()" />
<script>
function over() {
style.color = "red"
}
    
function out() {
style.color = "blue"
}
</script>
</component>
<component>
<public:attach event="onmouseover" onevent="over()" />
<public:attach event="onmouseout" onevent="out()" />
<script>
function over() {
style.color = "red"
}
    
function out() {
style.color = "blue"
}
</script>
</component>

还可以进一步精简成这样

<component>
<attach event="onmouseover" handler="over" />
<attach event="onmouseout" handler="out" />
<script>
function over() {
style.color = "red"
}
    
function out() {
style.color = "blue"
}
</script>
</component>

HTC专用元素

Attach:将来自组件容器的事件绑定到该组件

Component:在HTC文件中使用,以将其定义为一个组件

Event:由HTC使用,以便展示给它的容器的事件

Method:组件的一个公共过程,它被展示给该组件的容器

Property:组件的公共属性

Note:除了Attach元素外,(Attach元素没有Name属性)每个元素都有Name属性和ID属性.包含文档使用Name属性来引用相应元素,ID属性用来在HTML组件本身中引用相应元素



各个元素用法:

1.Attach

<PUBLIC:ATTACH Event = "eventName" for = "document" onEvent="eventHandle" ID="sID" />

属性说明:

Event:指定一个DHTML事件的名称或者将任意事件的名称指定给一个HTC(必需属性)

For:标识事件的来源.其取值如下所示:document是指HTML文档的文档对象;element是指附加了行为的元素(默认);windows是指浏览器的窗口对象

onEvent:当触发事件或者处理内嵌脚本时,指定将调用的函数名称

ID:为组件的附加元素指定了唯一的标识符



2.Compent

<PUBLIC:COMPONENT NAME ="name" ID="ID" URN ="urn"></PUBLIC:COMPONENT>

属性说明

Name:指定用来在包含文档中所引用的行为的名称

ID:为组件中的组件元素指定唯一标识符

URN:指定唯一的标识组件的"统一资源名称"(Uniform Resource Name,URN)

Note:msdn上的COMPONENT元素不止这几个属性,特别是IE6.0有扩充,具体可以察看



3.DEFAUTLS(IE5.5以后支持)

可以使用DEFAULTS元素来设置HTC的默认属性值,这个元素及其每一个属性都是可选的.

<PUBLIC:DEFAULTS tabStop="true/false" style="sStyle"

contentEditable = "true/false" canHaveHTML = "true/false"

viewInheritStyle = "true/false" viewMasterTab = "true/false"

viewLinkContent = "true/false">

属性说明

tabStop:指定是否可以在父容器页中按Tab键定位到组件.默认值是false

style:指出用来指定HTC定义标签的样式的字符串

contentEditable:设置用户是否可以编辑内容.在默认情况下,HTC将根据其父容器是否拥有允许用户编辑内容的能力来从其父容器中继承这个属性.不论其父容器页的能力如何,都可以将这个属性设置为false来禁用编辑功能.将这个值设置为ture可以启用内容编辑,但仍然会受到其父容器能力的限制

canHaveHTML:指定HTC标签的内容是否能够包含HTML标记

viewInheritStyle:指定HTC标签的内容是否能够包含HTML标记

viewMasterTab:指定HTC的主元素是否是主文档的Tab键顺序的一部分.

viewLinkContent:指定是否将HTC的标记用作ViewLink.默认值是false



4.EVENT

<PUBLIC:EVENT NAME="name" ID="eventID">

属性说明

Name:指定向包含文档展示的事件的名称.(必须属性)

ID:为组件中的事件元素指定唯一的标识符



5.METHOD

<PUBLIC:METHOD Name="name" InternalName = "internalName" ID="ID" />

属性说明

Name:指定包含文档用来调用方法的名称,如果没有指定内部名称,那么在调用该方法时,这就是被调用函数的名称(必须属性)

ID:为组件中的事件元素指定唯一的标识符

InternalName:在调用方法时,指定将在组件内部调用的函数的可选名称



5.PROPERTY

<PUBLIC:PROPERTY Name="name" ID="id" InternalName = "internalName" Get="getFunctionName" Put="putFunctionName" Persist="persist" Value="defaultValue">

属性说明

Name:指定向包含文档展示的属性的名称.(必须属性)

ID:为组件中的属性元素指定唯一的标识符

InternalName:指定在组件中引用属性所使用的名称

Get:指定无论何时检索属性值时都调用的函数

Put:指定在设置属性值时调用的函数

Persist:指定是否将属性保留为页面的一部分

Value:指定属性的默认值

Note:如果该元素只有get功能,那么该属性在公共接口中就是只读的,反之如果只有put功能,则表示这个属性在公共接口中就是只写的.



HTC方法

createEventObject()

说明:创建一个DHTML事件对象,在调用fire方法时,可以使用这个对象来将事件信息传递到包含文档



eventID.fire([eventObject])

说明:将一个事件触发到容器,只能触发组件的<event>元素中指定的事件,允许将一个事件对象传递到包含该事件细节的事件对象中,而不只是触发事件.eventID包含想要触发的事件的ID



HTC事件

oncontentready:在浏览器解析该行为所属的元素时触发

oncontentsave:在复制或者保存到identity行为的元素内容之前触发

ondetach:在从行为所属的元素中删除行为之前触发

ondocumentready:在已经解析了包含页面之后触发.该事件将在下载完页面上的脚本、图像、Microsoft ActiveX控件和其他元素之后触发,这个事件将在触发window.onload事件之后触发



另外还有3个HTC对象

defaults:用来通过程序设置Element行为上的默认行为,所有属性同前面的defaults元素

document:此对象提供了对Element行为中的基本标记的程序访问,该对象的成员于DHTML DOM文档对象的成员相同

element:此对象提供了对行为所绑定到的基本元素的程序访问

Note:defaults和document对象只适合于IE5.5以后版本



注:资料来自windows web脚本开发指南

ps:不知道什么时候抄的了,偶然翻到,希望有用

HTC学习笔记的更多相关文章

  1. Android自动化学习笔记:编写MonkeyRunner脚本的几种方式

    ---------------------------------------------------------------------------------------------------- ...

  2. 【学习笔记】移动Web手册(PPK力作)

    又是好久没写博客了,最近把近半年的总结,全部总结到博客园吧.先写最近的一个移动端的学习笔记.毕竟移动端开发了一段时间,就写一写读<移动web手册>中,对我感触比较深的几个点—— 一.浏览器 ...

  3. 【转】Pro Android学习笔记(二):开发环境:基础概念、连接真实设备、生命周期

    在Android学习笔记(二):安装环境中已经有相应的内容.看看何为新.这是在source网站上的Android架构图,和标准图没有区别,只是这张图颜色好看多了,录之.本笔记主要讲述Android开发 ...

  4. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  5. PHP-自定义模板-学习笔记

    1.  开始 这几天,看了李炎恢老师的<PHP第二季度视频>中的“章节7:创建TPL自定义模板”,做一个学习笔记,通过绘制架构图.UML类图和思维导图,来对加深理解. 2.  整体架构图 ...

  6. PHP-会员登录与注册例子解析-学习笔记

    1.开始 最近开始学习李炎恢老师的<PHP第二季度视频>中的“章节5:使用OOP注册会员”,做一个学习笔记,通过绘制基本页面流程和UML类图,来对加深理解. 2.基本页面流程 3.通过UM ...

  7. 2014年暑假c#学习笔记目录

    2014年暑假c#学习笔记 一.C#编程基础 1. c#编程基础之枚举 2. c#编程基础之函数可变参数 3. c#编程基础之字符串基础 4. c#编程基础之字符串函数 5.c#编程基础之ref.ou ...

  8. JAVA GUI编程学习笔记目录

    2014年暑假JAVA GUI编程学习笔记目录 1.JAVA之GUI编程概述 2.JAVA之GUI编程布局 3.JAVA之GUI编程Frame窗口 4.JAVA之GUI编程事件监听机制 5.JAVA之 ...

  9. seaJs学习笔记2 – seaJs组建库的使用

    原文地址:seaJs学习笔记2 – seaJs组建库的使用 我觉得学习新东西并不是会使用它就够了的,会使用仅仅代表你看懂了,理解了,二不代表你深入了,彻悟了它的精髓. 所以不断的学习将是源源不断. 最 ...

随机推荐

  1. 《InsideUE4》-5-GamePlay架构(四)Pawn

    <InsideUE4>-5-GamePlay架构(四)Pawn Tags: InsideUE4 我像是一颗棋 进退任由你决定 我不是你眼中唯一将领 却是不起眼的小兵 引言 欢迎来到Game ...

  2. 一个完整的TCP连接

    当我们向服务器发送HTTP请求,获取数据.修改信息时,都需要建立TCP连接,包括三次握手,四次分手. 什么是TCP连接? 为实现数据的可靠传输,TCP要在应用进程间建立传输连接.它是在两个传输用户之间 ...

  3. markdown学习/mou

    markdown编辑器mou markdown编辑器的使用很简单,mac平台选择课 MOU 这款比较轻的客户端. 使用也很方便,打开软件,->helo->mou help 就有各种示例,照 ...

  4. hdu5317 RGCDQ (质因子种数+预处理)

    RGCDQ 题意:F(x)表示x的质因子的种数.给区间[L,R],求max(GCD(F(i),F(j)) (L≤i<j≤R).(2<=L < R<=1000000) 题解:可以 ...

  5. 【2016-10-25】【坚持学习】【Day12】【WPF】【Telerik】【VirtualtionData 虚拟化数据】

    VirtualQueryableCollectionView When working with the UI components that enable UI Virtualization, yo ...

  6. AC日记——寻找道路 洛谷 P2296

    题目描述 在有向图G 中,每条边的长度均为1 ,现给定起点和终点,请你在图中找一条从起点到终点的路径,该路径满足以下条件: 1 .路径上的所有点的出边所指向的点都直接或间接与终点连通. 2 .在满足条 ...

  7. 简易的轮廓边生成(N和V dot点乘方式)(surface方式和vs ps 方式的分别实现)

    一.前面心情 1.公司我的架构发生变动,从技术中心到项目组了,但不管怎么样,该看的还要看,总会用到 二.实现 三.参考: http://blog.csdn.net/cubesky/article/de ...

  8. iOS逆向工程资料

    链接: 基于iOS逆向工程的微信机器人 - 猫友会大讲坛第1期 我的失败与伟大 —— 创业必备的素质(狗神经验谈)

  9. BZOJ 2034 【2009国家集训队】 最大收益

    Description 给出\(N\)件单位时间任务,对于第\(i\)件任务,如果要完成该任务,需要占用\([S_i, T_i]\)间的某个时刻,且完成后会有\(V_i\)的收益.求最大收益. 澄清: ...

  10. Word2Vec 使用总结

    word2vec 是google 推出的做词嵌入(word embedding)的开源工具. 简单的说,它在给定的语料库上训练一个模型,然后会输出所有出现在语料库上的单词的向量表示,这个向量称为&qu ...