阅读内容 

HTML 组件(HTML COMPONENTS)之三

[日期:2001-02-06] 来源:奥索网  作者:feiy [字体: ]
  ===ANYDAY 和 TODAY HTCs===

  ANYDAY组件定义在day,htc中,该组件是日历单元的一个封装。组件的名字是由定义在第一行的XML命名空间决定的。

  〈HTML XMLNS:ANYDAY〉
  正如canlenar.htc一样,你只有一个命名空间定义,原因是在该页不用调用其他的HTC,也就是说该HCT是叶子HTC,在这里我们定义的自定义标签是DAY,同样我们也定义它的行为,实际上,HTML组件的定义就是自定义标签行为的定义,该行为包括一个属性和一个事件:

〈PUBLIC:COMPONENT tagName="DAY"〉
〈PROPERTY NAME="value"〉〈/PROPERTY〉
〈ATTACH EVENT="oncontentready" ONEVENT="fnInit()"〈〉/ATTACH〉
〈/PUBLIC:COMPONENT〉


  注意事件 oncontentready ,当它的调用者calendar.htc要求导入day.htc并且被完全导入,该事件就会产生,事件的处理者是fnInit().我们来看看它:

function fnInit() {
document.body.innerHTML = element.value;
document.body.className = "clsDay";
defaults.viewLink = document;
element.appointments = "";
element.date = element.value;
}


  fnInit()演示了很多重要的HTC章节。第一行把 element.value 指定给调用页的 innerHTML 属性。HTML组件总是封装在element对象里。value属性一般定义在PROPERTY标签中,作为提醒,实际的值从调用页面传入,canlendar.htc:
text += '〈TD〉〈ANYDAY:DAY value=' + dayOfMonth + '〉〈/ANYDAY:DAY〉〈/TD〉'
  单元样式在第二行指定:
document.body.className = "clsDay";
  样式类 clsDay 定义在该页的别处:

STYLE〉
.clsDay {
width:50;
height:50;
background-color:lightyellow;
align:center;
text-align:right;
}
〈/STYLE〉


  注意在日历中日期的被填色为亮黄色,这证明HTC的格式的指定模式被它的调用者所支配,即:calendar.htc.

  fninit()的第三行设置default对象的viewlink属性,viewLink属性是HTML组件的基础,它可以使得一个HTC文档(day.htc)对另一个HTML组件(calendar.htc)来说可见.这儿就是viewLink的设置:
defaults.viewLink = document;
  注意您需要联接的是整个document对象。fnInit()的最后两行初始化我们将在以后解释的两个内部属性:
element.appointments = "";
element.date = element.value;

  用于它本身的显示,DAY HTML组件和鼠标点击相关:
〈BODY onclick="fnShowAppts()"〉
  当该天被点击,用户被提醒在该天加上他或她的约会,或者修改已经存在的约会:

function fnShowAppts() {
newAppointments = prompt("Add your appointment:", element.appointments);
if (newAppointments != null) element.appointments = newAppointments;
document.body.innerHTML = '〈FONT COLOR="red"〉' + element.date + '〈/FONT〉' + "〈BR〉" + '〈FONT SIZE="1"〉' + element.appointments + '〈/FONT〉';
}


  这里的输入机制非常原始,用户在约会指定中加入新行标签(〈BR〉),否则他们将都显示在一行。最后innerHTML是日期数据(element.date)和约会指定(element.appointments)的连接纽带。

  TODAY HTML组件(today.htc)和ANYDAY组件(day.htc)非常类似。唯一的不同是样式快中的background-color是pink而不是lightyellow,并且字体颜色是blue 而不是red.
  注意在日历中当前日期是粉红色(pink)背景蓝色的字。
  下节将列出我们所讲的日历的完整代码和一个不用HTC组件方法实现的日历代码:


  ====日历主页面===

  ====日历主页面===

HTML XMLNS:MYCAL〉
〈HEAD〉
〈TITLE〉Calendar Example〈/TITLE〉
〈?IMPORT NAMESPACE="MYCAL" IMPLEMENTATION="calendar.htc"/〉
〈/HEAD〉

〈BODY〉
〈P〉Click a day in the calendar to add or modify your schedule.〈/P〉

〈MYCAL:CALENDAR〉〈/MYCAL:CALENDAR〉

〈/BODY〉
〈/HTML


阅读:
录入:

推荐 】 【 打印
相关新闻      
本文评论       全部评论
发表评论
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款


点评: 字数
姓名:
Advertisement
内容查询


Advertisement