没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
翻译|其它|编辑:郝浩|2004-02-17 22:54:00.000|阅读 1342 次
概述:
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
然后我们定义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对象有别的属性并且会在别的地方被覆盖,我们给viewLink属性赋的是HTML文档对象,正因为该连接,我们才可以建立HTC组件和包含页面互访。
我们将在后面解释日历的层。注意,尽管在日历中当月的当天框和其他天框、空框的样式不一样,但是我们通过优先级法则来实现在包含页中,HTML组件忽略任何相互冲突的样式定义。calendar.htc的样式定义如下:
<STYLE>
TD {
background-color:tan;
width:50;
height:50;
}
</STYLE>
现在将该定义和日历比较,只有空框是的颜色是黄褐色的,我们调用的HTC忽略了这些定义,被调用的页面都嵌入了页面定制。以下调用TODAY:DAY
HTML组件:
<TODAY:DAY value=' + dayOfMonth +
'></TODAY:DAY>
我们只是简单的传入了当月中的第几天,同样的调用ANYDAY:DAY 也是简单的传入当月中的第几天:
<ANYDAY:DAY value=' + dayOfMonth +
'></ANYDAY:DAY>
===编写日历一===
当calendar.html调用
MYCAL:CALENDAR,当月的日历将会显示在页面中,函数setCal()是主要程序段,它初始化一些变量并调用drawCal()函数。我们也使用了三个别的函数:getMonthName()、
getDays() 和 leapYear()。让我们从最后一个函数开始:
getDays()函数接收哪月值和哪年值,并且建立一个有12个元素的数组,用来存放每月的天数,哪一年用来决定是不是闰年,在闰年中二月是29天,而不是闰年是28天。该函数返回指定月份的天数。
以下是getDays():
function getDays(month, year) {
// create array to hold
number of days in each month
var ar = new Array(12);
ar[0] = 31; //
January
ar[1] = (leapYear(year)) ? 29 : 28; // February
ar[2] = 31; //
March
ar[3] = 30; // April
ar[4] = 31; // May
ar[5] = 30; // June
ar[6] = 31; // July
ar[7] = 31; // August
ar[8] = 30; // September
ar[9] = 31; // October
ar[10] = 30; // November
ar[11] = 31; //
December
// return number of days in the specified month (parameter)
return ar[month];
}
如果指定的年数可以被4整除,那么leapYear()函数将返回“true”,否则返回”false“:
function leapYear(year) {
if (year % 4 ==
0) // basic rule
return true; // is leap year
/* else */ // else not
needed when statement is "return"
return false; // is not leap year
}
getMonthName()函数返回指定月份的名字:
function getMonthName(month) {
// create
array to hold name of each month
var ar = new Array(12);
ar[0] =
"January";
ar[1] = "February";
ar[2] = "March";
ar[3] = "April";
ar[4] = "May";
ar[5] = "June";
ar[6] = "July";
ar[7] = "August";
ar[8] = "September";
ar[9] = "October";
ar[10] = "November";
ar[11] = "December";
// return name of specified month (parameter)
return ar[month];
}
setCal()函数是主模块,我们在脚本的第一行调用它。该函数为当天(now)、和每月的第一天(firstDayInstance)建立一个Date对象。用这些对象,setCal()函数解析出关于一个月的第一天、当日,和最后一天的所有信息。
function setCal() {
// standard time
attributes
var now = new Date();
var year = now.getFullYear();
var
month = now.getMonth();
var monthName = getMonthName(month);
var date =
now.getDate();
now = null;
// create instance of first day of month,
and extract the day on which it occurs
var firstDayInstance = new Date(year,
month, 1);
var firstDay = firstDayInstance.getDay();
firstDayInstance =
null;
// number of days in current month
var days = getDays(month,
year);
// call function to draw calendar
drawCal(firstDay + 1, days,
date, monthName, year);
}
样式类 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组件方法实现的日历代码
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@evget.com
面对“数字中国”建设和中国制造2025战略实施的机遇期,中车信息公司紧跟时代的步伐,以“集约化、专业化、标准化、精益化、一体化、平台化”为工作目标,大力推进信息服务、工业软件等核心产品及业务的发展。在慧都3D解决方案的实施下,清软英泰建成了多模型来源的综合轻量化显示平台、实现文件不失真的百倍压缩比、针对模型中的大模型文件,在展示平台上进行流畅展示,提升工作效率,优化了使用体验。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
本站的模型资源均免费下载,登录后即可下载。模型仅供学习交流,勿做商业用途。
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@evget.com
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
慧都科技 版权所有 Copyright 2003-
2025 渝ICP备12000582号-13 渝公网安备
50010702500608号