📄 lwdp.htc
字号:
floatpanel.style.position='absolute';
floatpanel.style.left=0;
floatpanel.style.top=0;
floatpanel.style.display='none';
floatpanel.style.zIndex=10000;
element.document.body.insertAdjacentElement('afterbegin',floatpanel);
switch(element.PopupMode)
{
case "ondblclick":
element.attachEvent('ondblclick',element_onpopup);
break;
case "oncontextmenu":
element.attachEvent('oncontextmenu',element_onpopup);
break;
case "onclick":
default:
element.attachEvent('onclick',element_onpopup);
break;
}
function element_onpopup()
{
ShowPanel();
if(event.type=='contextmenu')
return event.returnValue=false;
}
}
function AddD(d)
{
AddDays(date,d)
UpdateAndSync();
}
function AddM(m)
{
AddMonths(date,m)
UpdateAndSync();
}
function AddY(y)
{
AddYears(date,y)
UpdateAndSync();
}
function UpdateAndSync()
{
UpdateUI();
SyncToElement();
}
function SetWrong()
{
element.runtimeStyle.backgroundColor=element.WrongBackColor||'pink'
element.runtimeStyle.color=element.WrongForeColor||'red'
}
function SetRight()
{
element.runtimeStyle.backgroundColor=''
element.runtimeStyle.color=''
}
var settingbythis=false;
function SetElementValue(str)
{
settingbythis=true;
try
{
element.value=str;
if(element.fireEvent)
{
element.fireEvent('onchange');
}
else if(element.onclick)
{
element.onclick();
}
}
finally
{
settingbythis=false;
}
}
function GetElementValue()
{
return element.value.replace(/^\s*/g,"").replace(/\s*$/g,"");
}
function SyncToElement()
{
SetRight();
SetElementValue(FormatDate(date,element.DateFormatString||"yyyy-MM-dd"));
element.select();
}
function SyncFromElement()
{
var value=GetElementValue();
if(element.Nullable=='True'&&value=='')
{
SetRight();
return;
}
var d=ConvertDate(value);
if(d)
{
date=d;
if(showed)
UpdateUI();
SetRight();
return;
}
SetWrong();
}
function UpdateUI()
{
if(uidate&&IsDateEquals(date,uidate))return;
uidate=new Date(date);
if(msel.selectedIndex!=date.getMonth())
msel.selectedIndex=date.getMonth();
var dc=GetMonthDayCount(date);
if(dsel.options.length>dc)
{
dsel.options.length=dc;
}
else
{
for(var i=dsel.options.length;i<dc;i++)
AddOption(dsel,i+1,i+1);
}
if(dsel.selectedIndex!=date.getDate()-1)
{
dsel.selectedIndex=date.getDate()-1;
}
var ymiddle=parseInt(ysel.options(20).value);
if(date.getFullYear()>ymiddle+8||date.getFullYear()<ymiddle-8)
{
ymiddle=date.getFullYear();
ysel.options.length=0;
for(var i=ymiddle-106;i<ymiddle+100;i++)
{
AddOption(ysel,i,i);
}
ysel.value=ymiddle;
}
else
{
if(ysel.value!=date.getFullYear())
ysel.value=date.getFullYear();
}
CreateDays();
}
function CreateDays()
{
while(tabledays.rows.length>1)tabledays.deleteRow(1);
var eachday=new Date(date.getFullYear(),date.getMonth(),1);
AddDays(eachday,-eachday.getDay());
var arr=[];
do
{
var wds=[];
for(var i=0;i<7;i++)
{
wds[i]=new Date(eachday);
AddDays(eachday,1)
}
arr[arr.length]=wds;
}
while(eachday.getYear()==date.getYear()&&eachday.getMonth()==date.getMonth());
for(var t=0;t<arr.length;t++)
{
var tr=tabledays.insertRow();
var wds=arr[t];
for(var i=0;i<wds.length;i++)
{
var td=tr.insertCell();
td.style.fontSize='9pt';
td.style.fontFamily='fixedsys';
var wd=wds[i];
var classnames=["lwdpdate","lwdpweek"+weeknames[i],"lwdp"+FormatDate(wd,"yyyyMMdd")];
if(IsMonthEquals(wd,date))
{
classnames[classnames.length]="lwdpthismonth";
if(IsToday(wd))
{
classnames[classnames.length]="lwdptoday";
}
if(IsDateEquals(wd,date))
{
classnames[classnames.length]="lwdpcurrent";
td.style.textDecoration='underline';
td.style.backgroundColor=element.CurrentBackColor||'darkgreen'
td.style.color=element.CurrentForeColor||'white';
td.style.fontWeight='bold';
}
else if(IsToday(wd))
{
td.style.backgroundColor=element.TodayBackColor||'limegreen'
td.style.color=element.TodayForeColor||'white';
}
else
{
td.style.backgroundColor=element.MonthBackColor||'';
td.style.color=element.MonthForeColor||'mediumblue';
}
}
else
{
classnames[classnames.length]="lwdpothermonth";
td.style.backgroundColor=element.OtherBackColor||'';
td.style.color=element.OtherForeColor||'#606060';
}
td.className=classnames.join(' ');
td.date=wd;
td.innerText=wd.getDate();
if(td.currentStyle.disabled!='1')
{
td.style.cursor='hand';
td.onmouseover=onlabel_mouseover;
td.onmouseout=onlabel_mouseout;
td.onclick=ondate_click;
}
else
{
td.disabled=true;
}
}
}
}
function onlabel_mouseover()
{
win.event.srcElement.runtimeStyle.color=element.OverColor||'firebrick'
}
function onlabel_mouseout()
{
win.event.srcElement.runtimeStyle.color=''
}
function onweeknum_click()
{
var num=parseInt(win.event.srcElement.weeknum);
AddDays(date,num-date.getDay());
UpdateAndSync();
}
function ondate_click()
{
var thedate=win.event.srcElement.date;
if(IsMonthEquals(date,thedate))
{
date=thedate;
SyncToElement();
HidePanel();
}
else
{
date=thedate;
UpdateAndSync();
}
}
function HandleKeyDown(event)
{
switch(event.keyCode)
{
case 13:
SyncToElement();
HidePanel();
return true;
case 38:
case 40:
var d=ConvertDate(GetElementValue());
if(d)
{
AddDays(d,event.keyCode-39);
date=d;
SyncToElement();
if(showed)
UpdateUI();
}
return true;
case 33:
case 34:
var d=ConvertDate(GetElementValue());
if(d)
{
AddMonths(d,event.keyCode*2-33*2-1);
date=d;
SyncToElement();
if(showed)
UpdateUI();
}
return true;
}
}
</script>
<script>
// this window
function ShowPanel()
{
if(showed)return;
if(element.readOnly)return;
showed=true;
UpdateUI();
element.document.attachEvent('onmousedown',document_onmousedown);
floatpanel.style.display='';
var pos=LostinetWebCalcPosition(floatpanel,element);
pos.top=pos.top+element.offsetHeight;
LostinetWebAdjustMirror(floatpanel,element,pos);
floatpanel.style.left=pos.left;
floatpanel.style.top=pos.top;
}
function HidePanel()
{
if(!showed)return;
showed=false;
element.document.detachEvent('onmousedown',document_onmousedown);
floatpanel.style.left=0;
floatpanel.style.top=0;
floatpanel.style.display='none';
}
function document_onmousedown()
{
var src=event.srcElement;
if(element.contains(src))return;
if(tablepanel.contains(src))return;
HidePanel();
}
element.attachEvent('onkeydown',function element_onkeydown(){
var r=HandleKeyDown(event);
if(r)
{
return event.returnValue=false;
}
});
element.attachEvent('onpropertychange',function element_onpropertychange(){
if(settingbythis)return;
if(event.propertyName=='value')
SyncFromElement();
});
</script>
<script>
function handlecontentready()
{
var iframe=document.all('lwdpid_iframe');
var panel=document.all("lwdpid_tablepanel");
if(element.UseFrame=='False')
{
floatpanel=panel;
Initialize(document.all);
SyncFromElement();
return;
}
window.document.body.insertAdjacentElement('afterbegin',iframe);
if(iframe.contentWindow) //ie5.5
{
win=iframe.contentWindow;
}
else
{
win=window.open(element.FrameSrc||'about:blank',iframe.name);
}
var intervalid=window.setInterval(handlereadystatechange,100)
function handlereadystatechange()
{
if(win.document.readyState!='complete')
{
return;
}
window.clearInterval(intervalid);
win.document.body.style.cssText='backgroundColor:blue;border:0px;margin:0px;padding:0px;overflow:visible;';
win.document.body.insertAdjacentHTML('beforeend',panel.outerHTML);
floatpanel=iframe;
iframe.style.width="320px";
iframe.style.height="240px";
Initialize(function getelement(id){return win.document.all(id)});
SyncFromElement();
}
}
</script>
<public:attach event='oncontentready' onevent='handlecontentready()'></public:attach>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -