📄 lwdp.htc
字号:
<!--
CopyRight lostinet.com 2004
element:
PopupMode 'onclick' or 'ondblclick','oncontextmenu'
DateFormatString 'yyyy-MM-dd' or 'MM/dd/yyyy' or 'yyyyMMdd'
Nullable 'False' or 'True'
UseFrame 'True' or 'False'
(ignore origin window's style settings)
OverColor : firebrick
WrongBackColor : 'pink'
WrongForeColor : 'red'
CurrentBackColor: 'darkgreen'
CurrentForeColor: 'white'
TodayBackColor : 'lime'
TodayForeColor : 'white'
OtherBackColor : ''
OtherForeColor : '#606060'
class:
lwdpanel
lwdpanelhead
-->
<table id="lwdpid_tablepanel" class='lwdpanel' border="0" style='font-size:9pt;border:1px outset;background-color:;cursor:default;' bgcolor=#cc99ff>
<tr height="21">
<td>
<table border="0" class='lwdpanelhead' ID="Table1">
<tr>
<td id="lwdpid_mprev" style='font-size:9pt;font-family:webdings;' title='减少一个月 ( 热键 - 上翻页 PageUp )'>7</td>
<td><select id="lwdpid_msel">
<option>一月</option>
<option>二月</option>
<option>三月</option>
<option>四月</option>
<option>五月</option>
<option>六月</option>
<option>七月</option>
<option>八月</option>
<option>九月</option>
<option>十月</option>
<option>十一月</option>
<option>十二月</option>
</select></td>
<td id="lwdpid_mnext" style='font-size:9pt;font-family:webdings;' title='增加一个月 ( 热键 - 下翻页 PageDown)'>8</td>
<td id="lwdpid_dprev" style='font-size:9pt;font-family:webdings;' title='减少一天 ( 热键 - 上箭头 ↑ )'>7</td>
<td><select id="lwdpid_dsel"><option>11</option>
</select></td>
<td id="lwdpid_dnext" style='font-size:9pt;font-family:webdings;' title='增加一天 ( 热键 - 下箭头 ↓ )'>8</td>
</tr>
</table>
</td>
<td align="right">
<table border="0" ID="Table2">
<tr>
<td id="lwdpid_yprev" style='font-size:9pt;font-family:webdings;' title='减少一年'>7</td>
<td><select id="lwdpid_ysel"><option>2000</option>
</select></td>
<td id="lwdpid_ynext" style='font-size:9pt;font-family:webdings;' title='增加一年'>8</td>
</tr>
</table>
</td>
</tr>
<tr height="2">
<td align="center" colspan="2">
<div style="font-size:0px;border-bottom:1px solid #aaaaaa;"> </div>
<div style="font-size:0px;border-top:1px solid #eeeeee;"> </div>
</td>
</tr>
<tr>
<td colspan="2">
<table id="lwdpid_tabledays" width="312" height="162" border="1" bordercolor="#000888"
style='border-collapse:collapse;' bgcolor=#ffccff>
<colgroup>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
<col align="center" style='font-size:9pt;padding-top:3px;width:44px;'></col>
</colgroup>
<tr bgcolor=#ffffff>
<td id="lwdpid_weeksun" weeknum="0" bgcolor=#ffccff class='lwdpheadsun' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期天' >Sun</td>
<td id="lwdpid_weekmon" weeknum="1" class='lwdpheadmon' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期一' bgcolor=#ff3300>Mon</td>
<td id="lwdpid_weektue" weeknum="2" class='lwdpheadtue' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期二'>Tue</td>
<td id="lwdpid_weekwed" weeknum="3" class='lwdpheadwed' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期三'>Wed</td>
<td id="lwdpid_weekthu" weeknum="4" class='lwdpheadthu' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期四'>Thu</td>
<td id="lwdpid_weekfri" weeknum="5" class='lwdpheadfri' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期五'>Fri</td>
<td id="lwdpid_weeksat" weeknum="6" class='lwdpheadsat' style='font-family:fixedsys;background-color:Yellow;'
title='选择星期六'>Sat</td>
</tr>
</table>
</td>
</tr>
<tr>
<td>
<button id="lwdpid_btntd" hidefocus="1" onfocus='blur()' style='width:72px;cursor:hand;border:1px outset;font-size:9pt;padding-top:2px;'
title='选择今天'>今天</button>
<button id="lwdpid_btnbl" hidefocus="1" onfocus='blur()' style='width:72px;cursor:hand;border:1px outset;font-size:9pt;padding-top:2px;'
title='令它为空白'>空白</button>
</td>
<td align="right">
<button id="lwdpid_btnok" hidefocus="1" onfocus='blur()' style='width:72px;cursor:hand;border:1px outset;font-size:9pt;padding-top:2px;'
title='关闭面板'>确定</button>
</td>
</tr>
</table>
<iframe id=lwdpid_iframe name='lwdpiframe' src='about:blank' frameBorder=0 style='width:0px;height:0px'></iframe>
<script>
//get the position of a element ( by the scroll offset )
function LostinetWebGetScrollPostion(e)
{
var b=e.document.body;
if(e==b)return {left:0,top:0};
with(e.getBoundingClientRect())
{
return {left:b.scrollLeft+left,top:b.scrollTop+top};
}
}
//get the position of a element ( by the client offset )
function LostinetWebGetClientPosition(e)
{
var b=e.document.body;
if(e==b)return {left:-b.scrollLeft,top:-b.scrollTop};
with(e.getBoundingClientRect())
{
return {left:left-b.clientLeft,top:top-b.clientTop};
}
}
//get absolute or relative parent
function LostinetWebGetStandParent(e)
{
for(var p=e.parentElement;p!=null;p=p.parentElement)
{
var sp=p.currentStyle.position;
if(sp=='absolute'||sp=='relative')
return p;
}
return e.document.body;
}
//calc the position of floate that relative to e
function LostinetWebCalcPosition(floate,e)
{
var epos=LostinetWebGetScrollPostion(e);
var spos=LostinetWebGetScrollPostion(LostinetWebGetStandParent(floate));
var s=LostinetWebGetStandParent(floate);
return {left:epos.left-spos.left-s.clientLeft,top:epos.top-spos.top-s.clientTop};
}
//get the best position to put the floate
function LostinetWebAdjustMirror(floate,e,pos)
{
//c:Client,f:floate,e:e,p:floate's StandParent,m:Mirror
var cw=e.document.body.clientWidth;
var ch=e.document.body.clientHeight;
var fw=floate.offsetWidth;
var fh=floate.offsetHeight;
var ew=e.offsetWidth;
var eh=e.offsetHeight;
var ecpos=LostinetWebGetClientPosition(e);
var empos={left:ecpos.left+ew/2,top:ecpos.top+eh/2};
var pcpos=LostinetWebGetClientPosition(LostinetWebGetStandParent(floate));
var fcpos=LostinetWebGetClientPosition(floate);
var fmpos={left:pcpos.left+pos.left+fw/2,top:pcpos.top+pos.top+fh/2};
//left<-->right
if( (fmpos.left<empos.left) ? ((fmpos.left-fw/2<0)&&((empos.left*2-fmpos.left)+fw/2<=cw)) : ((fmpos.left+fw/2>cw)&&((empos.left*2-fmpos.left)-fw/2>=0)) )
fmpos.left=empos.left*2-fmpos.left;
//top<-->bottom
if( (fmpos.top<empos.top) ? ((fmpos.top-fh/2<0)&&((empos.top*2-fmpos.top)+fh/2<=ch)) : ((fmpos.top+fh/2>ch)&&((empos.top*2-fmpos.top)-fh/2>=0)) )
fmpos.top=empos.top*2-fmpos.top;
pos.left=fmpos.left-pcpos.left-fw/2;
pos.top=fmpos.top-pcpos.top-fh/2;
}
function AddDays(date,value)
{
date.setDate(date.getDate()+value);
}
function AddMonths(date,value)
{
date.setMonth(date.getMonth()+value);
}
function AddYears(date,value)
{
date.setFullYear(date.getFullYear()+value);
}
function IsToday(date)
{
return IsDateEquals(date,new Date());
}
function IsThisMonth(date)
{
return IsMonthEquals(date,new Date());
}
function IsMonthEquals(date1,date2)
{
return date1.getMonth()==date2.getMonth()&&date1.getFullYear()==date2.getFullYear();
}
function IsDateEquals(date1,date2)
{
return date1.getDate()==date2.getDate()&&IsMonthEquals(date1,date2);
}
function GetMonthDayCount(date)
{
switch(date.getMonth()+1)
{
case 1:case 3:case 5:case 7:case 8:case 10:case 12:
return 31;
case 4:case 6:case 9:case 11:
return 30;
}
//feb:
date=new Date(date);
var lastd=28;
date.setDate(29);
while(date.getMonth()==1)
{
lastd++;
AddDays(date,1);
}
return lastd;
}
function GetHarfYear(date)
{
var v=date.getYear();
if(v>9)return v.toString();
return "0"+v;
}
function GetFullMonth(date)
{
var v=date.getMonth()+1;
if(v>9)return v.toString();
return "0"+v;
}
function GetFullDate(date)
{
var v=date.getDate();
if(v>9)return v.toString();
return "0"+v;
}
function Replace(str,from,to)
{
return str.split(from).join(to);
}
function FormatDate(date,str)
{
str=Replace(str,"yyyy",date.getFullYear());
str=Replace(str,"MM",GetFullMonth(date));
str=Replace(str,"dd",GetFullDate(date));
str=Replace(str,"yy",GetHarfYear(date));
str=Replace(str,"M",date.getMonth()+1);
str=Replace(str,"d",date.getDate());
return str;
}
function ConvertDate(str)
{
str=(str+"").replace(/^\s*/g,"").replace(/\s*$/g,"");
var d;
if(/^[0-9]{8}$/.test(str)) // 20040226 -> 2004-02-26
{
d=new Date(new Number(str.substr(0,4)),new Number(str.substr(4,2))-1,new Number(str.substr(6,2)));
if(d.getTime())return d;
}
d=new Date(str);
if(d.getTime())return d;
d=new Date(Replace(str,"-","/"));
if(d.getTime())return d;
return null;
}
function AddOption(sel,n,v)
{
var option=sel.document.createElement('OPTION');
option.text=n;
option.value=v;
sel.options.add(option);
}
</script>
<script>
var weeknames=new Array('sun', 'mon', 'tue', 'wed', 'thu', 'fri', 'sat');
var win=window;
var tablepanel;
var floatpanel;
var showed=false;
var date=new Date();
var uidate=null;
var dprev;
var dnext;
var mprev;
var mnext;
var yprev;
var ynext;
var dsel;
var msel;
var ysel;
var tabledays;
var weeksun;
var weekmon;
var weektue;
var weekwed;
var weekthu;
var weekfri;
var weeksat;
var btntd;
var btnok;
var btnbl;
function Initialize(getelement)
{
tablepanel=getelement("lwdpid_tablepanel");
dprev=getelement('lwdpid_dprev');
dnext=getelement('lwdpid_dnext');
mprev=getelement('lwdpid_mprev');
mnext=getelement('lwdpid_mnext');
yprev=getelement('lwdpid_yprev');
ynext=getelement('lwdpid_ynext');
dsel=getelement('lwdpid_dsel');
msel=getelement('lwdpid_msel');
ysel=getelement('lwdpid_ysel');
tabledays=getelement('lwdpid_tabledays');
weeksun=getelement('lwdpid_weeksun');
weekmon=getelement('lwdpid_weekmon');
weektue=getelement('lwdpid_weektue');
weekwed=getelement('lwdpid_weekwed');
weekthu=getelement('lwdpid_weekthu');
weekfri=getelement('lwdpid_weekfri');
weeksat=getelement('lwdpid_weeksat');
btntd=getelement('lwdpid_btntd');
btnok=getelement('lwdpid_btnok');
btnbl=getelement('lwdpid_btnbl');
Init_Elements(getelement);
}
function Init_Elements()
{
tablepanel.attachEvent('onkeydown',function tablepanel_onkeydown(){
var r=HandleKeyDown(win.event);
if(r)
{
return win.event.returnValue=false;
}
});
if(element.Nullable!='True')
btnbl.style.display='none';
for(var i=0;i<12;i++)msel.options[i].value=i+1;
dsel.options.length=0;
for(var i=1;i<=28;i++)
AddOption(dsel,i,i);
ysel.options.length=0;
var thisyear=new Date().getFullYear();
for(var i=thisyear-40;i<thisyear+40;i++)AddOption(ysel,i,i);
ysel.value=new Date().getFullYear();
function tablepanel.onselectstart()
{
return win.event.returnValue=false;
}
var labels=[dprev,dnext,mprev,mnext,yprev,ynext,weeksun,weekmon,weektue,weekwed,weekthu,weekfri,weeksat];
for(var i=0;i<labels.length;i++)
{
if(labels[i].currentStyle.disabled!='1')
{
labels[i].style.cursor='hand';
labels[i].onmouseover=onlabel_mouseover;
labels[i].onmouseout=onlabel_mouseout;
}
}
msel.onchange=dsel.onchange=ysel.onchange=
function FromUIDateOfSelect()
{
date=new Date(ysel.value,msel.selectedIndex,dsel.selectedIndex+1);
UpdateAndSync();
}
var weeknums=[weeksun,weekmon,weektue,weekwed,weekthu,weekfri,weeksat];
for(var i=0;i<weeknums.length;i++)
{
if(weeknums[i].currentStyle.disabled!='1')
weeknums[i].onclick=onweeknum_click;
}
dprev.ondblclick=function dprev.onclick(){ AddD(-1); }
dnext.ondblclick=function dnext.onclick(){ AddD(1); }
mprev.ondblclick=function mprev.onclick(){ AddM(-1); }
mnext.ondblclick=function mnext.onclick(){ AddM(1); }
yprev.ondblclick=function yprev.onclick(){ AddY(-1); }
ynext.ondblclick=function ynext.onclick(){ AddY(1); }
function btntd.onclick()
{
date=new Date();
UpdateAndSync();
}
function btnbl.onclick()
{
SetElementValue("");
HidePanel();
}
function btnok.onclick()
{
SyncToElement();
HidePanel();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -