DHTML行为介绍

来源:百度文库 编辑:神马文学网 时间:2024/04/28 00:54:36
DHTML行为介绍
--------------------------------------------------------------------------------------
微软Internet Explorer 5.5中介绍的最精彩的特征之一是动态HTML(DHTML)行为。DHTML行为是叶面上封装了特殊的函数性或行为的组件。当应用到叶面上一个标准的HTML元素时,行为提高了元素默认的行为。例如,一个行为可以被创建,以用于通过鼠标的点击改变一个元素子级的display属性。当这个行为应用到叶面上一个标准的UL元素,它提高了无规律列表的默认行为——可以通过点击展开或收缩列表。相似的,另一个行为可以更有效地在屏幕上从一个起始点到一个结束点设定元素的位置。如果这个行为是应用到一个IMG元素,它让一个另外的静态定位图像从屏幕中飞过。
作为封装过的组件,行为提供简单的内容与脚本的分离。这不仅仅让多个叶面中重利用代码变得简单,也为叶面的方便管理做出了贡献。另外,简单的声明格式让Internet Explorer通过暴露的新层叠样式表(CSS)behavior属性将一个行为应用到一个元素变得与连接一份样式到叶面中一个元素一样轻松。
DHTML行为的功能已经在Internet Explorer 5.5的发布中有了重大的增强,包括被称为元素行为的新类型行为种类。从此DHTML行为有了两种主要的类型,原来在Internet Explorer 5中介绍的行为现在被称为连接行为。因此,本篇文章中行为的讨论主要涉及到连接行为。关于Internet Explorer 5.5中行为的功能的信息,请参阅关于元素行为和Viewlink介绍。
本文章覆盖了行为带给DHTML的好处,捆绑在Internet Explorer 5中的默认行为,讨论当使用行为时跨浏览器发布出现错误的可能性增加,最后,提供相关主题的链接。

好处
        DHTML行为为网络应用程序环境增加了很好的效果,让大家潜心于网络开发时事情变得更简单。在真实世界中,这个环境由一队内容作者、设计师和开发员组成。内容作者负责编写内容。设计师决定什么交互效果可以添加到内容中,同时开发者实现哪些效果。
        行为提供了一种脚本封装和代码重用的方法
                有了行为,多叶面中重复使用添加交互效果的封装组件变得简单。例如,想想Internet Explorer 4.0中开始可行的众多流行效果之一:鼠标移至时的高亮。通过使用CSS规则,以及在空中改变样式的能力,在叶面中实现这个效果变得简单。在Internet Explorer 4.0中,在一个列表项目或LI上实现鼠标移至的高亮效果,可以下面的习惯通过onmouseover和onmouseout事件来处理:
                ms-help://MS.MSDNQTR.2003APR.1033/Behavior/workshop/author/behaviors/overview.htm
                从Internet Explorer 5开始,实现这个效果可以由一个DHTML行为来完成。这个行为,当应用到一个LI元素时,扩展了列表项目默认行为,而使用户移动鼠标到其上方时它的颜色发生改变。
                下面的例子以一个HTML组件(HTC)文件的方式执行了一个包含在hilite.htc文件中的行为,来实现鼠标移至时的高亮效果。行为通过相似的样式块应用到LI上,使用暴露的CSS中指定行为地址的behavior属性。行为应用后,前面的代码可以在Internet Explorer 5及后继版本中看到与下面效果相似的效果。
                因为行为包含在一个分离的文件中,在一整个网络站点也可以在多个叶面中重复实现相似的效果。
                注意前面例子中的行为,就像任何CSS属性,可以在行内应用到LI元素,就如下面的例子:
                将行为应用到元素的其他方式,在一篇单独的文章中讨论,使用DHTML行为。
        行为让设计师可以通过一种简单的声明格式添加交互效果
                现在,向叶面添加交互效果的任务可以包括一段设计师和开发者之间冗长的循环处理,以尝试让叶面获得最佳视觉效果。设计师,一般都是有限的编程背景,在一个桌面发布的环境中模拟出想要的效果,工作近似于让开发者使用动态HTML在叶面中实现相同的效果。
                有了行为,一个开发者可以在一个单独的文件中自主地封装想要的效果,而设计师则使用一些CSS属性将行为应用到叶面的元素上。有了提供的简单声明格式,无需对DHTML和脚本做多少了解,行为让网络设计师可以很轻松的将交互效果添加到一个另外的固定内容。正如前面例子中所见,将鼠标移至的高亮效果添加到一个列表项目上,就如添加相似的样式块一样轻松,准确来说,样式是以相同的方式通过CSS连接到一个元素的。
        行为让脚本从内容、过滤器的结果、更多可管理叶面中分离
                行为提供了脚本与内容很轻松的分离,因为它将所有叶面中包含的脚本移到一个单独的文件中。前面的例子论证了移至一个单独的文件hilite.htc中的脚本如何处理onmouseover和onmouseout事件。这个例子可以扩展到实现显隐内容,让它甚至更清晰地看到行为是如何产生一点不同之处,脚本如何将过滤器的结果与脚本自由的叶面分离。
        行为包括易创建的组件
                HTC文件提供了最快捷和最方便的途径来使用如微软VBScript和JScript(与ECMA262语言规范兼容)之类的脚本语言创建DHTML行为。然而,正如当今网络中使用的任何组件一样,行为可以由微软视窗脚本组件(WSC)或微软Visual C++实现。
                前面例子中使用的实现鼠标移至高亮效果的行为是由一份HTC实现的,而且只包含了若干行代码。代码主要由脚本构成,还包括一定数量的用于定义行为的自定义标签。注意PUBLIC:ATTACH元素的使用,因为它让一份HTC可以监听叶面相应元素上事件的发生,并适当的处理这些事件。这种功能意味着对原本放在叶面中的事件处理代码的封装。
                需要关于HTC文件和通过脚本和Visual C++实现行为的更多信息,请参阅相关主题中提供的链接。

Internet Explorer 中的默认行为
        Internet Explorer 5 介绍了一定数量的内建在浏览器内的默认行为。这些默认行为的完整列举在默认行为参考中可以找到。
        一个这样的默认行为,saveFavorite,允许一个叶面的当前状态在当它添加到用户的收藏夹时被保存下来。
        例如,下面的代码展示了saveFavorite行为如何在保存一个叶面为收藏时纪录叶面中的信息。注意样式块中的提供的CSS属性behavior是如何指定浏览器执行的行为的。
        更多关于Internet Explorer 5中介绍的持续信息,请参阅持续简介。
        兼容性
                微软对DHTML行为的支持限制在运行Internet Explorer 5或后继版本的系统中。不支持DHTML行为的浏览器会忽略叶面中出现的CSS属性behavior,导致元素以一般形态表现出来而没有被应用行为。然而,脚本错误可能因应用到叶面中一个元素的行为中使用的属性、方法或者事件而出现,意味着对象不支持该属性或方法。这些错误必须由叶面作者使用一些版本检测代码进行消除处理。
        安全性
                行为是Internet Explorer的关于跨叶面脚本与安全性规则方面的话题。换句话说,一份网页引用另一个域中的另一台服务器上的行为会导致该叶面onerror事件处理中出现一个“访问被拒绝”的错误。同样的,一份网页引用一种不同的安全协议下的行为也会导致同样的错误。例如,http://server1/page.htm叶面可能无法引用https://server1/hilite.htc行为。