HTML组件(HTML COMPONENTS)之三

2016-01-29 11:50 9 1 收藏

HTML组件(HTML COMPONENTS)之三,HTML组件(HTML COMPONENTS)之三

【 tulaoshi.com - Html 】

 

 ===最顶级页面===

  现在我们将我们注视的焦点转向我们的日历应用例子,该应用包括4个不同页面,canlendar.html为最顶级HTML文档,该页包含了calendar.htc HTC,而canlendar.htc有反过来包含两个别的HTC:day.htc和today.htc,calendar.html
内容如下:

<HTML XMLNS:MYCAL
<HEAD
<TITLECalendar Example</TITLE
<?IMPORT NAMESPACE="MYCAL" IMPLEMENTATION="calendar.htc"/
</HEAD

<BODY
<PClick a day in the calendar to add or modify your schedule.</P

<MYCAL:CALENDAR</MYCAL:CALENDAR

</BODY
</HTML

  有几个要点您必须重点注意:第一、命名空间定义在〈HTML〉标记中,我们需要使用在我们要调用的HTC中定义的命名空间,在canlendar.htc中的命名空间是:MYCAL,所以在<HTML标记中必须出现XMLNS标识。
  <?IMPORT标记以问号开始以和别的正常标记区别开,该标记要求浏览器导入指定的HTC:calendar.htc,HTC可以有多个命名空间,故在导入时需要指明要使用的命名空间(MYCAL):

<?IMPORT NAMESPACE="MYCAL" IMPLEMENTATION="calendar.htc"/

  HTC的主要优点之一就是:浏览器将一直挂起页面解析直到输入文件全部被导入为止。页面处理的异步机制将导致许多问题,浏览器并不等元素已经完全显示才开始解析页面,作为例子,你可以建立一个对象,并且在文挡的顶部访问一个在页面底部的方法,如果对象因为某些原因为准备好,你将会得到一个错误指示没有该对象不存在或该对象不支持你要访问的方法,相信您已经碰到过此类事情了吧!不管这样,?IMPORT 是同步的,并且浏览器会一直等待页面导入完毕并且内容准备好。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/html/)

  页面唯一而且重要的一行是调用自定义标记MYCAL:CALENDAR:

<MYCAL:CALENDAR</MYCAL:CALENDAR

  因为页面已经导入,故该调用将会象在calendar.htc所指定的那样建立一个日历。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/html/)

  您可能已经注意到HTC可以包含别的HTC,calendar.htc包括两个别的HTML组件,每个月的所有日期:day.htc和与当前日期一致的today.htc,以下是canlendar.htc的顶部15行:

<HTML XMLNS:MYCAL XMLNS:TODAY XMLNS:ANYDAY
<HEAD
<?IMPORT NAMESPACE="ANYDAY" IMPLEMENTATION="day.htc"/
<?IMPORT NAMESPACE="TODAY" IMPLEMENTATION="today.htc"/

<PUBLIC:COMPONENT tagName="CALENDAR"
<ATTACH EVENT="oncontentready" ONEVENT="fnInit()"/
</PUBLIC:COMPONENT
<SCRIPT LANGUAGE="JavaScript"
<!--
function fnInit()
{
defaults.viewLink = document;
}
// --
</SCRIPT

  第一行在这些HTC会用到的XML命名空间。这些命名空间即包括本页自己要用到的,也包括页面需调用的命名空间(ANYDAY 和 TODAY ),注意命名空间并不一定要和HTC文件文件名一致。接着,我们导入这些HTC:

<?IMPORT NAMESPACE="ANYDAY" IMPLEMENTATION="day.htc"/
<?IMPORT NAMESPACE="TODAY" IMPLEMENTATION="today.htc"/

  当我们解析到这些行,浏览器将一直等到要导入的文件被导入才继续页面解析(同步导入)。

然后我们定义CALENDAR自定义标记:

<PUBLIC:COMPONENT tagName="CALENDAR"
<ATTACH EVENT="oncontentready" ONEVENT="fnInit()"/
</PUBLIC:COMPONENT

  PUBLIC:COMPONENT用来描述CALENDAR标记,在开始和结束标记之间,您可以将事件附加到CALENDAR标记上,事件oncontentready将在calendar.htc文件全部被导入,并被解析时,指定处理时间的是定义在JAVASCRIPT的函数:fnInit():

<SCRIPT LANGUAGE="JavaScript"
<!--
function fnInit()
{
defaults.viewLink = document;
}
// --
</SCRIPT

  viewLink指定的值非常重要,它是HTML组件的基础,它连接了HTML组件和调用该HTML组件的页面,defaults对象有别的属性并且会在别的地方被

来源:http://www.tulaoshi.com/n/20160129/1483547.html

延伸阅读
  ANYDAY组件定义在day,htc中,该组件是日历单元的一个封装。组件的名字是由定义在第一行的XML命名空间决定的。 <HTML XMLNS:ANYDAY 正如canlenar.htc一样,你只有一个命名空间定义,原因是在该页不用调用其他的HTC,也就是说该HCT是叶子HTC,在这里我们定义的自定义标签是DAY,同样我们也定义它的行为,实际上,HTML组件...
  ===TODAY HTC=== <HEAD <PUBLIC:COMPONENT tagName="DAY" <PROPERTY NAME="value"</PROPERTY <ATTACH EVENT="oncontentready" ONEVENT="fnInit()"</ATTACH </PUBLIC:COMPONENT <STYLE .clsDay { width:50; height:50; background-color: pink; align:center; text-align:right; } </STYLE <SCRIPT L...
HTML 组件(HTML COMPONENTS)是IE5。0的主要扩展之一,其也最具革命性,微软的意图是用HTML组件来取代ACTIVEX控件,和ACTIVE控件一样,HTML组件是自持续封闭对象,可以一次开发任意使用,使用HTML组件有很多好处,本文将给您揭示其中的一些! HTML组件带入了很多新的术语、思想、对象、方法和属性,我将通过一个日历应用给您接受这些,这个日...
标签: Web开发
pb定义事件/b p要在 HTC 中定义一个事件,我们需要用到 PUBLIC:EVENT 元素。当我们定义了一个事件后,我们就可以在 HTC 的所在页中来调用它。 p在下面的例子中来示范如何实现一个计算器的功能。在 HTC 中我们使用 EVENT 元素定义了一个 onResultChange 事件。当在所在页中激活 onResultChange 事件时,HTC 将计算出结果并返回...
===CALENDAR HTC=== <HEAD <?IMPORT NAMESPACE="ANYDAY" IMPLEMENTATION="day.htc"/ <?IMPORT NAMESPACE="TODAY" IMPLEMENTATION="today.htc"/ <PUBLIC:COMPONENT tagName="CALENDAR" <ATTACH EVENT="oncontentready" ONEVENT="fnInit()"/ </PUBLIC:COMPONENT <SCRIPT LANGUAGE="JavaScript" <!-- function...

经验教程

167

收藏

86

精华推荐

初探 HTML 组件 - 定义方法

初探 HTML 组件 - 定义方法

在不珍惜就老了

初探 HTML 组件 - HTC 概述

初探 HTML 组件 - HTC 概述

恒羽服饰

HTML组件之:编写日历(2)

HTML组件之:编写日历(2)

种子生活

微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部