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); 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定义的的方法,属性 -->



原文地址:https://www.cnblogs.com/sekihin/p/691244.html
Creative Commons License 本作品采用 知识共享署名-非商业性使用 2.5 中国大陆许可协议进行许可。