`

什么是HTC

阅读更多
在微软IE 5.0版本的浏览器发布以前,网页编程中面对的最大挑战就是不能轻易地创建组件,以达到代码重用和多页面共享的目的。这个问题一直困扰着DHTML(动态 HEML)的网页编程者。他们只能不断地重复书写HTML、CSS和javascript的代码,以满足多个页面上的重复或相似的功能。自IE 5.0浏览器发布后,这种情况得到了改善,它带给我们一个新的指令组合方法,可把实现特定功能的代码封装在一个组件内,从而实现多页面的代码重用,使网页编程进入一个全新的天地。这个新的技术就是我们要谈到的DHTML中的“行为”(Behaviors)。

     “行为”作为一个简单易用的组件,它封装了页面上特定的功能或动作。当把一个“行为”附到WEB页面中的一个元件上时,这个元件的原有行为就会有所改变。因此,网页编程者可以开发通用的DHTML指令,并改变原有对象的一些属性,用“行为”来增强一个对象的功能,同时也简化了页面的HTML代码。而且“行为”的创建和使用也非常简单方便,所需的知识也只是原来已经习惯使用的CSS样式表、HTML指令和javascript脚本语言。只要你对此有所了解,有过实际编程的经历,学习并掌握“行为”的使用完全没有问题。我们将以一个改变字体效果的“行为”组件为例来说明如何编写和使用一个“行为”,并体验“行为”给页面编辑带来的优点和方便之处。

  首先新建一个名为font_efftce.htc的文本文件,组成“行为”组件的文件都是以.htc为扩展名,这个文件中的内容就是我们对这个“行为”的描述。它的创建和使用步骤如下:
(1)首先给这个“行为”增加几个事件响应,语句书写格式如下:
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()"/>
<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()"/>
<PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()"/>
<PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()"/>
“EVENT”对应所需事件名,在这里分别为nmouseover,onmouseout,onmousedown,onmouseup四个事件名,你当然可以再增加其它的事件名来满足你的特定需求。“ONEVENT”对应着个自的事件句柄,即事件触发时所调用的函数名称。glowit()函数使字体周围产生一个红色的辉光。noglow()函数是消除字体的辉光效果。Font2yellow()函数是把字体颜色改为黄色。Font2blue()函数是把字体颜色改为蓝色。四个事件的定义都是相似的。
(2)接下来,再给这个“行为”增加二个“方法”定义,内容如下。
<PUBLIC:METHOD NAME="move_down"/>
<PUBLIC:METHOD NAME="move_right"/>
“NAME”参数对应的是给定的“方法”名称。move_down和move_right分别是向下和向右移动的“方法”对应的函数名称。注意,在方法名的后面不要带“( )”括号,即不要写成“move_down()”这个样子,这在“方法”定义的语法上是不允许的。
(3)接下来的工作就是在我们熟悉的DHTML环境下,用javascript脚本语句编写“事件句柄”和“方法”所对应的函数内容,实现预期的效果。具体内容参考下面的源程序。其中的“element”参数指的是这个“行为”所附着的对象,因为“行为”总是被附着到页面的元件上面,并通过这个元件发挥作用。其它语句都是DHTML的编程内容,就不再多说了。如有不明之处,可参考微软的MSDN开发文档中有关IE浏览器的内容,上面有详细的DHTML编程参考内容、属性和方法使用说明等,并包含了大量的文章和举例程序。经常访问微软的MSDN文档,尤其对于初学者来说是一个良好的学习习惯,你几乎可以得到任何你想找的答案,它的网址为:http://msdn.microsoft.com/ie/。
  完整的“行为”文档“font_effect.htc”的内容如下:
////////////////////////“行为”文档开始////////////////////////////
//给“行为”增加四个鼠标事件
<PUBLIC:ATTACH EVENT="onmouseover" ONEVENT="glowit()"/>
<PUBLIC:ATTACH EVENT="onmouseout" ONEVENT="noglow()"/>
<PUBLIC:ATTACH EVENT="onmousedown" ONEVENT="font2yellow()"/>
<PUBLIC:ATTACH EVENT="onmouseup" ONEVENT="font2blue()"/>
//给“行为”定义二个方法
<PUBLIC:METHOD NAME="move_down"/>
<PUBLIC:METHOD NAME="move_right"/>
<SCRIPT LANGUAGE="JScript">
//定义一个保存字体颜色的变量
var font_color;
//定义向下移动文字的方法
function move_down()
{
element.style.posTop+=2;
}
//定义向右移动文字的方法
function move_right()
{
element.style.posLeft +=6;
}
//定义鼠标onmouseup事件的调用函数
function font2blue(){
if (event.srcElement == element)
{
element.style.color='blue';
}
}
//定义鼠标onmousedown事件的调用函数
function font2yellow(){
if (event.srcElement == element)
{
element.style.color='yellow';
}
}

//定义鼠标onmouseover事件的调用函数
function glowit()
{
if (event.srcElement == element)
{
font_color=style.color;
element.style.color='white';
element.style.filter="glow(color=red,strength=2)";
}
}

//定义鼠标onmouseout事件的调用函数
function noglow()
{
if (event.srcElement == element)
{
element.style.filter="";
element.style.color=font_color;
}
}
</SCRIPT>
//////////////////“行为”文档结束///////////////////////////////
(4)如何在一个页面上使用“行为”
  在页面上使用“行为”组件,并不需要学习新的知识。所需的知识的也不过是CSS样式表和HTML的设置而已,请看下面的语句。
<STYLE>
.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;}
</STYLE>
  可以看出,这和以前我们已经熟知的样式表设置完全相同。上面的语句定义了一个样式名:“myfilter”,其中对我们来说比较新的内容是:“behavior:url(font_effect.htc);”,“behavior”是新增的“行为”属性名,这就是“行为”在样式表中的设置方式。括号中的内容是“行为”文档的文件名,本例中表明“行为”文档在与页面文件在同一个目录下,如果“行为”文档安置在其它目录下,在此参数的前面要加上相应的路径名,以保证可以正确地定位“行为”文档的位置。此“样式”中的其它内容就是普通的样式属性设置,可根据你的需要增减,但在此例中,由于使用了“glow”滤镜效果,至少要设置一个宽度(width)属性。通过以上的样式指定,我们就有了一个名为:“myfilter”的样式,它附带一个有字体变化效果的“行为”。如果你想要在一个页面元件上使用这个附带“行为”的样式,同样也很简单,只要把这个“样式名”安置在元件的属性设置区域即可,见下面的语句。
<span id="myspan" class='myfilter'>行为产生的文字效果</span><br>
<span class='myfilter'>鼠标指向后产生辉光</span>
  以上语句里面没有什么新的内容,class='myfilter'就是我们所熟悉的样式设置。在第一个“span”标记的属性中还定义了一个“id”标记,稍后就会看到,这是用来演示调用“行为”内的“方法”而设置的。这样设置后,“span”元件中的内容就可以显示出“行为”组件内的预定效果:
1. 鼠标指针移动到文字内容上时,在文字周围产生红色的辉光效果,同时文字变成白色。
2. 当鼠标按钮按下时,文字颜色改变为黄色。
3. 鼠标按钮抬起后,文字颜色又改变为蓝色。
4. 当鼠标指针移动到文字区域以外时,去掉了红色辉光效果,文字恢复原样。
  另外,我们在定义“行为”时设置了二个“方法”,“move_down”和“move_right”。为调用这二个“方法”,定义了二个按钮:
<button onclick="myspan.move_right();">向右移动第一行文字</button>
<br>
<button onclick="myspan.move_down();">向下移动第一行文字</button>
  用按钮的onclick事件去调用这二个“方法”,先前定义的“id”标记就作为元件的对象名称,用“myspan.move_down”来调用“方法”,操纵这个对象。可以看到,在按下相应的按钮后,会使第一行的文字产生向下或向右的移动。虽然只是用第一行文字做了示范,实际上,只要做相应的设置,你也可以移动其它对象。页面源文档的完整内内容如下:
<html >
<HEAD >
<TITLE >行为效果演示< /TITLE >
<STYLE >
.myfilter{behavior:url(font_effect.htc);position:relative;font-weight:bold;width=180;left:0;}
</STYLE>
</HEAD>
<BODY>
<span id="myspan" class='myfilter'>行为产生的文字效果</span><br>
<span class='myfilter'>鼠标指向后产生辉光</span><br>
<span class='myfilter'>同时文字变白</span><br>
<span class='myfilter'>按下鼠标后文字变黄</span><br>
<span class='myfilter'>抬起鼠标后文字变蓝</span><br>
<span class='myfilter'>鼠标离开后文字恢复原状</span><br>
<button onclick="myspan.move_right();">向右移动第一行文字</button><br>
<button onclick="myspan.move_down();">向下移动第一行文字</button>
</BODY>
</html>
  通过以上的简单介绍,可以看出,我们很容易地在一个“行为”中同时组合了多种文字变化效果,通过简单的“样式”设置,任意地将它与页面元件相关连,体现了“行为”组件的优点和强大功能。一个“行为”组件,不仅能在一个页面内重复使用,也可供同一站点上的所有页面使用。试想一下,如果不使用“行为”来完成上述的效果,虽然可以在页面内调用一组预定的函数来完成同样的功能,但页面内每一个使用文字效果的元件都要附加四个鼠标事件,如果在多个页面内使用相同的效果,被调用的函数也需要在每一个页面内重复设置。相比之下,孰优孰劣是很明显的。所以,使用“行为”组件,可以制作出简洁、高效、通用和便于维护的页面。本文的举例只是为了说明“行为”组件的编写和使用过程,使读者对“行为”编程有一个概括的了解,并以此基础制作出自己所需要的“行为”组件,或直接引用满足个人需要的现成“行为”组件,因为“组件共享”的概念也是“行为”开发者的初衷。最后,愿本文能起到“抛砖引玉”的目的,使读者步入精彩的DHTML网页编程天地。

说明:
HTC是HTML component的缩写,
是IE5.0的主要扩展之一,
除了具备一般组件的可重用优点之外,
还具有易于开发使用等优点,
因为需要引入外部文件,这里就不举例了,宝库里有例子.

控件和组件
HTC提供了一个简单机制以在脚本中实现DHTML行为。一个HTC文件和HTML文件没有任何差别,并且以“.htc”为后缀,

可以使用HTC实现以下行为:
设定属性和方法。通过“PROPERTY”和“METHOD”元素定义
设置自定义事件。通过“EVENT”元素实现,用该元素的“fire()”方法释放事件,
通过“createEventObject()”方法设置事件环境。
访问所包含该HTC的的HTML页的DHTML对象模型,使用HTC的“element"对象,返回
一个附加行为的元素,使用该对象,HTC可以访问包含文挡及它的对象模型(属性、方法、事件)。
收取通知,使用”ATTACH“元素实现,浏览器不但通知HTC标准的DHTML事件,而且通知HTC两种特殊事件:oncontentready事件和ondocumentready事件 。

定义标记和命名空间
HTC的基础是自定义标记
要为页面定义自定义标记,必须为该标记提供命名空间
要使用该标记必须在该标记前加上正确的XML命名空间前缀
例如:
定义一个新标记RIGHT的例子
代码片断如下:
<HTML XMLNS:DOCJS>
<HEAD>
<STYLE>
@media all {
DOCJS\:RIGHT {text-align:right; width:100}
}
</STYLE>
</HEAD>
<BODY>
<DOCjs:RIGHT>
Read Doc javascript's columns, tips, tools, and tutorials
</DOCjs:RIGHT>
</BODY>
</HTML>
可以在单个HTML标记中定义多个命名空间:
<HTML XMLNS:DOCJS XMLNS:DOCjavascript>
组件定义
组件的名字是由HTC文档里定义在第一行的XML命名空间决定的
该页不用调用其他的HTC话,就只有一个命名空间定义
实际上,HTML组件的定义就是自定义标签行为的定义
该行为包括一个属性和一个事件:
<HTML xmlns:MyTag>
<HEAD>
<PUBLIC:COMPONENT tagName="MyTag">
<PROPERTY NAME="value"></PROPERTY>
<ATTACH EVENT="oncontentready" ONEVENT="fnInit()"<>/ATTACH>
</PUBLIC:COMPONENT>
<STYLE>//为组件定义样式表
.cssMyTag{
}
</STYLE>
<SCRIPT language=javascript>
function MyTagBehavior1(){} //为组件定义方法
</SCRIPT>
</HEAD>
<BODY onclick=MyTagBehavior1> //为组件定义响应事件
</BODY>
</HTML>
其中的oncontentready是在组件被调用者完全导入时触发
再看看fnInit()
function fnInit() {
document.body.innerHTML = element.value;//设定组件显示内容
document.body.className = "clsMyTag"; //设定显示样式表,
defaults.viewLink = document; //使本组件对其他文档可见
element.aProperty = element.value; //设置组件的属性值
}
组件的调用
<HTML xmlns:MyCom>
<HEAD>
<?IMPORT NAMESPACE="MyCom" IMPLEMENTATION="MyTag.htc"/>
</HEAD>
<BODY>
<MyCom:MyTag></MyCom:MyTag>
</BODY>
</HTML>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/xtxk_917/archive/2006/10/17/1337719.aspx
分享到:
评论

相关推荐

    webservice.htc下载

    首先,我们要理解什么是HTC(HTML Component)。HTC文件本质上是包含脚本代码(通常是JavaScript)的XML文档,这些脚本可以扩展HTML元素的功能,比如添加新的属性、方法或者事件处理程序。开发者可以通过将HTC文件...

    刷机工具,htc919d

    首先,我们需要理解什么是HTC 919d。这是一款由HTC公司推出的智能手机,通常运行Android操作系统。由于Android系统的开源性,用户可以根据自己的需求刷入不同的ROM(Read-Only Memory,只读存储器),以实现更多的...

    HTC完美越狱

    #### 什么是HTC完美越狱? HTC完美越狱指的是针对HTC品牌手机的一种破解方式,使得用户能够绕过官方系统的限制,获得更高的系统权限,从而可以安装非官方的应用程序、自定义系统设置等。这里的“完美”通常意味着...

    htc刷机必备

    1. **什么是HTC刷机**: HTC刷机是指为HTC智能手机安装非官方的Android系统固件,通常是为了升级到较新版本、体验不同的定制系统(如 CyanogenMod)或解决原厂系统的问题。刷机需要谨慎操作,因为错误的刷机过程...

    webservice.htc等htc文件

    【标题】: "Web服务扩展技术——HTC(HTML Component)与...总之,虽然webservice.htc和HTC技术已经过时,但它们在Web发展的历程中占据了一席之地,对于理解过去的技术实践和现代Web开发的演变具有一定的参考价值。

    HTC 技术中文参考手册

    **HTC技术中文参考手册** 本手册专注于介绍与HTC(High Tech Computer Corporation,宏碁)相关的技术知识,特别是针对开发者的详细指南。HTC是一家知名的台湾科技公司,以其智能手机和平板电脑产品而闻名,尤其在...

    htc sdk for android

    【Android SDK与HTC SDK详解】 在Android应用开发领域,SDK(Software Development Kit)是开发者不可或缺的工具,它包含了编写、测试和调试应用程序所需的各种库、文档和工具。HTC SDK则是针对HTC设备定制的一个...

    HTC 一键解锁工具

    官方解锁后可以做什么?进行HTC官方解锁后,你的HTC就可以随心所欲的刷MIUI或者其他第三方ROM。 HTC一键解锁工具功能特色: 1.工具采用了HTC官方的解锁方式,对Bootloader进行解锁 2.无需繁琐操作,只需一键即可完成...

    htc-cime htc touch input中文输入法

    【htc-cime htc touch input中文输入法】 HTC-CIME(Chinese Input Method Engine)是HTC公司为Android设备开发的一款中文输入法,旨在提供高效、流畅的触控输入体验。这款输入法专为HTC设备设计,但也可以在其他...

    HTC 语言包介绍

    知识点一:HTC 510E手机简介 HTC 510E,也被称为HTC Salsa C510e,是HTC公司生产的一款智能手机。该设备搭载了Android操作系统,具体版本为4.0.3,代号为“IML74K”。这款手机有一个显著的特点,就是支持多国语言...

    htc.teeter.apk

    htc.teeter.apk,htc的滚球游戏,大家快来下载啊

    HTC Unlocker.rar

    【HTC Unlocker.rar】是一个压缩包文件,其中包含了一个名为`HTC Unlocker.exe`的应用程序,这个工具专门用于解锁HTC智能手机。在深入探讨这个工具之前,我们需要理解解锁手机的意义以及它为何对用户重要。 手机...

    HTC G11维修图纸

    【HTC G11维修图纸】相关知识点 HTC G11,全称为HTC Incredible S,是一款由著名智能手机制造商HTC在2011年推出的高端Android智能手机。这款设备以其出色的硬件配置和独特的设计获得了不少用户的青睐。当手机出现...

    HTC RUU 刷机程序

    htc ruu刷机程序 HTC官方固件下载工具_htc官方固件下载是一款提供HTC官方RUU在线下载的软件。该工具由本人收集HTC官方原厂固件,并上传至服务器提供给大家下载。如果您是一个手机店维修人员,他将为您刷机过程中节约...

    htc t528t 驱动

    【HTC T528t驱动程序详解】 HTC T528t是一款经典的智能手机,由知名厂商HTC生产。在使用这款手机进行特定操作,如刷机、安装第三方应用或者进行系统修复时,可能需要安装对应的驱动程序。驱动程序是连接硬件设备与...

    htc.rar_HTC_js htc

    这个"htc.rar_HTC_js htc"压缩包很可能是包含了一些预封装好的HTC控件,供开发者在网页开发中直接引用,以实现特定的功能。 HTC控件的工作原理主要是通过创建自定义的行为(.htc文件),这些行为是由XML文档定义,...

    htc一键工具集合

    【HTC一键工具集合】是针对HTC智能手机用户推出的一系列实用工具的整合包,旨在帮助用户更方便、快捷地管理、优化和修复他们的设备。这个集合通常包含了各种与HTC设备相关的软件、驱动程序以及故障排查工具。下面将...

    Htc G10降级刷机

    Htc G10降级刷机过程中涉及的知识点较为丰富,这里将从多个维度详细解析整个过程,以及可能遇到的问题和解决方案。 1. 刷机和降级概念:刷机通常指通过特定的软件工具对手机的固件进行更新或更换,可以是官方发布的...

    HTC HD2 ROM包

    【HTC HD2 ROM包】是一款专为HTC HD2智能手机设计的操作系统镜像文件,通常被称为刷机ROM。这个ROM包被用户评价为稳定、省电且用户体验良好,因此吸引了许多用户尝试更新他们的设备来体验这些改进。 首先,我们要...

    htc shift 指纹软件

    【标题】"htc shift 指纹软件" 涉及的是在HTC Shift设备上使用的指纹识别软件。HTC Shift是一款具有创新性的移动设备,集成了笔记本和平板电脑的功能,而指纹软件则为用户提供了一种安全的身份验证方式,确保只有...

Global site tag (gtag.js) - Google Analytics