HTC组件介绍及应用

====HTML行为和HTC行为===

HTML组件封 装了HTML内容,并可以插入到别的HTML文档中。在HTML组件出现以前,在HMTL文档中使用自定义控制唯一的办法就是使用微软ACTIVEX控 件,ACTIVEX控件的一个缺点之一就是使用前必须客户机安装HTML控件,另一方面将主页面下载到客户机,对于DHTML的作者来说HTML控件更具 吸引力,因为他们可以使用他们熟悉的语言开发自己的控件和组件,HTC提供了一个简单机制以在脚本中实现DHTML行为。一个HTC文件和HTML文件没 有任何差别,并且以“.htc”为后缀,它包括脚本和一系列HTC自定义说明元素,这些元素定义了HTML组件的属性、方法、事件等,所有HTC元素通过 对象的ID属性作为对象在脚本中使用,所有方法和属性均可在脚本中动态操作。

您可以使用HTC实现以下行为:

*设定属性和方法。通过“PROPERTY”和“METHOD”元素定义

*设置自定义事件。通过“EVENT”元素实现,用该元素的“fire()”方法释放事件,通过“createEventObject()”方法设置事件环境。

*访问所包含该HTC的的HTML页的DHTML对象模型,使用HTC的“element"对象,返回一个附加行为的元素,使用该对象,HTC可以访问包含文挡及它的对象模型(属性、方法、事件)。

*收取通知,使用”ATTACH“元素实现,浏览器不但通知HTC标准的DHTML事件,而且通知HTC两种特殊事件:oncontentready事件和ondocumentready事件 。 HTC封装了行为的定义 ,行为的概念第一次出现是在IE5。0中,HTC中的高级行为封装就是行为不能和元素标记分离,在IE5。0中,在脚本中行为可以从元素中分离出来,而在IE5.5中,元素不能和其原始行为分离。

< PUBLIC:COMPONENT  lightWeight =false >
< PUBLIC:attach  event ="onkeydown"  onevent ="enter2tab()"   />
< PUBLIC:attach  event ="oncontextmenu"  onevent ="nocm()"   />
< PUBLIC:attach  event ="onhelp"  onevent ="nohelp()"   />
< script  language ="JavaScript" >
function  enter2tab() 

    
// 按回车键跳转到下一输入控件
     if (event.keyCode  ==   13
        event.keyCode 
=   9 ;
    
// //屏蔽Alt+方向键←和Alt+方向键→
     if  ((window.event.altKey)  &&  ((window.event.keyCode == 37 ||  (window.event.keyCode == 39 ))) 
        event.returnValue 
=   false ;    
    
// 屏蔽退格删除键、F5刷新键、Ctrl+r、F11、Ctrl+n、Shift+F10
     if  ((event.keyCode == 8 ||  (event.keyCode == 116 ) ||  (event.ctrlKey  &&  event.keyCode == 82 ||  (event.keyCode == 122 ||   (event.ctrlKey  &&  event.keyCode == 78 ||  (event.shiftKey  &&  event.keyCode == 121 )) 
    {
        event.keyCode 
=   0 ;
        event.returnValue 
=   false ;
    }
    
// 屏蔽Alt+F4
     if  ((window.event.altKey) && (window.event.keyCode == 115 ))
        
return   false ;
    
// 屏蔽Shift加鼠标左键新开一网页
     if  (window.event.srcElement.tagName  ==   " A "   &&  window.event.shiftKey)
        window.event.returnValue 
=   false ;             
}
// 屏蔽右键菜单
function  nocm()
{
    event.returnValue 
=   false ;
}
// 屏蔽F1键
function  nohelp()
{
    
return   false ;
}
</ script >
</ PUBLIC:COMPONENT >

引用方法:
1.
< input  type ="text"  style ="behavior:url(BodyKeyCode.htc);" >
2.
< div  id ="xxx"  style ="behavior:url(xxx.htc); width:100%; height:100%; border:1px solid #5672BA; overflow:auto"  onitemclick ="ItemClick()" ' ImgPath ="Pages/" >

< PUBLIC:PROPERTY  NAME ="ImgPath"  id ="pid_ImgPath"  GET ="get_ImgPath"          PUT ="set_ImgPath"   />
< PUBLIC:EVENT     NAME ="onitemclick"   id ="evt_ItemClick"   />
<!--   其中onitemclick,ImgPath就是htc定义的的方法,属性  -->


你可能感兴趣的:(HTC)