梅花雨做的一个日历 Javascript 页面脚本控件

比较好用,背景颜色可以自己用替换的形式改

//----------------------------------------------------------------------------//这是梅花雨做的一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器//主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子://一、<input name=txt><input type=button value=setday οnclick="setday(this,document.all.txt)">//二、<input οnfοcus="setday(this)" readonly>//若有什么不足的地方,或者您有更好的建议,请与我联系:mail: meizz@hzcnc.com//本日历的年份限制是(1000 - 9999)//按ESC键关闭该控件//在年和月的显示地方点击时会分别出年与月的下拉框//控件外任意点击一点即可关闭该控件/**//*以下为walkingpoison的修改说明
walkingpoison联系方式:wayx@kali.com.cn

Ver    2.0
修改日期:2002-12-13
修改内容:
1.*全新修改使用iframe作为日历的载体,不再被select和flash等控件挡住。
2.修正了移植到iframe后移动日历控件的问题。

Ver    1.5
修改日期:2002-12-4
修改内容:
1.选中的日期显示为凹下去的样式
2.修改了关闭层的方法,使得失去焦点的时候能够关闭日历。
3.修改按键处理,使得Tab切换焦点的时候可以关闭控件
4.*可以自定义日历是否可以拖动

Ver 1.4
修改日期:2002-12-3
修改内容:
1.修正选中年/月份下拉框后按Esc键导致年/月份不显示的问题
2.修正使用下拉框选择月份造成的日期错误(字符串转化为数字的问题)
3.*外观样式的改进,使得控件从丑小鸭变成了美丽的天鹅,从灰姑娘变成了高贵的公主,从……(读者可以自己进行恰当的比喻)
4.再次增大年/月份的点击空间,并对下拉框的位置稍作调整

注:*号表示比较关键的改动

说明:
1.受到iframe的限制,如果拖动出日历窗口,则日历会停止移动。
*/

//==================================================== 参数设定部分 =======================================================//当前背景颜色: #3A8FE8varbMoveable=true;//设置日历是否可以拖动var_VersionInfo="Version:2.0&#13;2.0作者:walkingpoison&#13;1.0作者: F.R.Huang(meizz)&#13;MAIL: meizz@hzcnc.com"//版本信息//==================================================== WEB 页面显示部分 =====================================================varstrFrame;//存放日历层的HTML代码document.writeln('<iframe id=meizzDateLayer Author=wayx frameborder=0 scrolling=no style="position: absolute; width: 146px; height: 212px; z-index: 9998; display: none"></iframe>');
strFrame
='<style>';
strFrame
+='INPUT.button{BORDER-RIGHT: #3A8FE8 1px solid;BORDER-TOP: #3A8FE8 1px solid;BORDER-LEFT: #3A8FE8 1px solid;';
strFrame
+='BORDER-BOTTOM: #3A8FE8 1px solid;BACKGROUND-COLOR: #fff8ec;font-family:宋体;}';
strFrame
+='TD{FONT-SIZE: 9pt;font-family:宋体;}';
strFrame
+='</style>';
strFrame
+='<scr'+'ipt>';
strFrame
+='var datelayerx,datelayery;    /*存放日历控件的鼠标位置*/';
strFrame
+='var bDrag;    /*标记是否开始拖动*/';
strFrame
+='function document.onmousemove()    /*在鼠标移动事件中,如果开始拖动日历,则移动日历*/';
strFrame
+='{if(bDrag && window.event.button==1)';
strFrame
+='{var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame
+='DateLayer.posLeft += window.event.clientX-datelayerx;/*由于每次移动以后鼠标位置都恢复为初始的位置,因此写法与div中不同*/';
strFrame
+='DateLayer.posTop += window.event.clientY-datelayery;}}';
strFrame
+='function DragStart()        /*开始日历拖动*/';
strFrame
+='{var DateLayer=parent.document.all.meizzDateLayer.style;';
strFrame
+='datelayerx=window.event.clientX;';
strFrame
+='datelayery=window.event.clientY;';
strFrame
+='bDrag=true;}';
strFrame
+='function DragEnd(){        /*结束日历拖动*/';
strFrame
+='bDrag=false;}';
strFrame
+='</scr'+'ipt>';
strFrame
+='<div style="z-index:9999;position: absolute; left:0; top:0;" onselectstart="return false"><span id=tmpSelectYearLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"></span>';
strFrame
+='<span id=tmpSelectMonthLayer Author=wayx style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"></span>';
strFrame
+='<table border=1 cellspacing=0 cellpadding=0 width=142 height=160 bordercolor=#3A8FE8 bgcolor=#3A8FE8 Author="wayx">';
strFrame
+='<tr Author="wayx"><td width=142 height=23 Author="wayx" bgcolor=#FFFFFF><table border=0 cellspacing=1 cellpadding=0 width=140 Author="wayx" height=23>';
strFrame
+='<tr align=center Author="wayx"><td width=16 align=center bgcolor=#3A8FE8 style="font-size:12px;cursor: hand;color: #ffffff"';
strFrame
+='οnclick="parent.meizzPrevM()" title="向前翻 1 月" Author=meizz><b Author=meizz>&lt;</b>';
strFrame
+='</td><td width=60 align=center style="font-size:12px;cursor:default" Author=meizz';
strFrame
+='οnmοuseοver="style.backgroundColor='#FFD700'" οnmοuseοut="style.backgroundColor='white'"';
strFrame
+='οnclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" title="点击这里选择年份"><span Author=meizz id=meizzYearHead></span></td>';
strFrame
+='<td width=48 align=center style="font-size:12px;cursor:default" Author=meizz οnmοuseοver="style.backgroundColor='#FFD700'"';
strFrame
+='οnmοuseοut="style.backgroundColor='white'" οnclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
strFrame
+='title="点击这里选择月份"><span id=meizzMonthHead Author=meizz></span></td>';
strFrame
+='<td width=16 bgcolor=#3A8FE8 align=center style="font-size:12px;cursor: hand;color: #ffffff"';
strFrame
+='οnclick="parent.meizzNextM()" title="向后翻 1 月" Author=meizz><b Author=meizz>&gt;</b></td></tr>';
strFrame
+='</table></td></tr>';
strFrame
+='<tr Author="wayx"><td width=142 height=18 Author="wayx">';
strFrame
+='<table border=1 cellspacing=0 cellpadding=0 bgcolor=#3A8FE8'+(bMoveable?'οnmοusedοwn="DragStart()" οnmοuseup="DragEnd()"':'');
strFrame
+='BORDERCOLORLIGHT=#3A8FE8 BORDERCOLORDARK=#FFFFFF width=140 height=20 Author="wayx" style="cursor:'+(bMoveable?'move':'default')+'">';
strFrame
+='<tr Author="wayx" align=center valign=bottom><td style="font-size:12px;color:#FFFFFF" Author=meizz>日</td>';
strFrame
+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>一</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>二</td>';
strFrame
+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>三</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>四</td>';
strFrame
+='<td style="font-size:12px;color:#FFFFFF" Author=meizz>五</td><td style="font-size:12px;color:#FFFFFF" Author=meizz>六</td></tr>';
strFrame
+='</table></td></tr><!-- Author:F.R.Huang(meizz) http://www.meizz.com/ mail: meizz@hzcnc.com 2002-10-8 -->';
strFrame
+='<tr Author="wayx"><td width=142 height=120 Author="wayx">';
strFrame
+='<table border=1 cellspacing=2 cellpadding=0 BORDERCOLORLIGHT=#3A8FE8 BORDERCOLORDARK=#FFFFFF bgcolor=#fff8ec width=140 height=120 Author="wayx">';
varn=0;for(j=0;j<5;j++)...{ strFrame+='<tr align=center Author="wayx">';for(i=0;i<7;i++)...{
strFrame
+='<td width=20 height=20 id=meizzDay'+n+'style="font-size:12px" Author=meizz οnclick=parent.meizzDayClick(this.innerText,0)></td>';n++;}
strFrame+='</tr>';}
strFrame+='<tr align=center Author="wayx">';
for(i=35;i<39;i++)strFrame+='<td width=20 height=20 id=meizzDay'+i+'style="font-size:12px" Author=wayx οnclick="parent.meizzDayClick(this.innerText,0)"></td>';
strFrame
+='<td colspan=3 align=right Author=meizz><span οnclick=parent.closeLayer() style="font-size:12px;cursor: hand"';
strFrame
+='Author=meizz title="'+_VersionInfo+'"><u>关闭</u></span>&nbsp;</td></tr>';
strFrame
+='</table></td></tr><tr Author="wayx"><td Author="wayx">';
strFrame
+='<table border=0 cellspacing=1 cellpadding=0 width=100% Author="wayx" bgcolor=#FFFFFF>';
strFrame
+='<tr Author="wayx"><td Author=meizz align=left><input Author=meizz type=button class=button value="<<" title="向前翻 1 年" οnclick="parent.meizzPrevY()"';
strFrame
+='οnfοcus="this.blur()" style="font-size: 12px; height: 20px"><input Author=meizz class=button title="向前翻 1 月" type=button';
strFrame
+='value="< " οnclick="parent.meizzPrevM()" οnfοcus="this.blur()" style="font-size: 12px; height: 20px"></td><td';
strFrame
+='Author=meizz align=center><input Author=meizz type=button class=button value=Today οnclick="parent.meizzToday()"';
strFrame
+='οnfοcus="this.blur()" title="当前日期" style="font-size: 12px; height: 20px; cursor:hand"></td><td';
strFrame
+='Author=meizz align=right><input Author=meizz type=button class=button value=" >" οnclick="parent.meizzNextM()"';
strFrame
+='οnfοcus="this.blur()" title="向后翻 1 月" class=button style="font-size: 12px; height: 20px"><input';
strFrame
+='Author=meizz type=button class=button value=">>" title="向后翻 1 年" οnclick="parent.meizzNextY()"';
strFrame
+='οnfοcus="this.blur()" style="font-size: 12px; height: 20px"></td>';
strFrame
+='</tr></table></td></tr></table></div>';

window.frames.meizzDateLayer.document.writeln(strFrame);
window.frames.meizzDateLayer.document.close();
//解决ie进度条不结束的问题//==================================================== WEB 页面显示部分 ======================================================varoutObject;
varoutButton;//点击的按钮varoutDate="";//存放对象的日期varodatelayer=window.frames.meizzDateLayer.document.all;//存放日历对象functionsetday(tt,obj)//主调函数...{
if(arguments.length>2)...{alert("对不起!传入本控件的参数太多!");return;}if(arguments.length==0)...{alert("对不起!您没有传回本控件任何参数!");return;}vardads=document.all.meizzDateLayer.style;
varth=tt;
varttop=tt.offsetTop;//TT控件的定位点高varthei=tt.clientHeight;//TT控件本身的高vartleft=tt.offsetLeft;//TT控件的定位点宽varttyp=tt.type;//TT控件的类型while(tt=tt.offsetParent)...{ttop+=tt.offsetTop; tleft+=tt.offsetLeft;}    dads.top=(ttyp=="image")?ttop+thei : ttop+thei+6;
    dads.left
=tleft;
    outObject
=(arguments.length==1)?th : obj;
    outButton
=(arguments.length==1)?null: th;//设定外部点击的按钮//根据当前输入框的日期显示日历的年月varreg=/^(d+)-(d...{1,2})-(d...{1,2})$/
varr=outObject.value.match(reg); 
if(r!=null)...{
        r[
2]=r[2]-1
vard=newDate(r[1], r[2],r[3]); 
if(d.getFullYear()==r[1]&&d.getMonth()==r[2]&&d.getDate()==r[3])...{
            outDate
=d;//保存外部传入的日期}
elseoutDate="";
            meizzSetDay(r[
1],r[2]+1);
    }
else...{
        outDate
="";
        meizzSetDay(
newDate().getFullYear(),newDate().getMonth()+1);
    }
    dads.display='';

    event.returnValue
=false;
}

varMonHead=newArray(12);//定义阳历中每个月的最大天数MonHead[0]=31; MonHead[1]=28; MonHead[2]=31; MonHead[3]=30; MonHead[4]=31; MonHead[5]=30;
    MonHead[
6]=31; MonHead[7]=31; MonHead[8]=30; MonHead[9]=31; MonHead[10]=30; MonHead[11]=31;

varmeizzTheYear=newDate().getFullYear();//定义年的变量的初始值varmeizzTheMonth=newDate().getMonth()+1;//定义月的变量的初始值varmeizzWDay=newArray(39);//定义写日期的数组functiondocument.onclick()//任意点击时关闭该控件    //ie6的情况可以由下面的切换焦点处理代替...
with(window.event)
...{if(srcElement.getAttribute("Author")==null&&srcElement!=outObject&&srcElement!=outButton)
    closeLayer();
  }
}

functiondocument.onkeyup()//按Esc键关闭,切换焦点关闭...{
if(window.event.keyCode==27)...{
if(outObject)outObject.blur();
        closeLayer();
    }
elseif(document.activeElement)
if(document.activeElement.getAttribute("Author")==null&&document.activeElement!=outObject&&document.activeElement!=outButton)
...{
            closeLayer();
        }
  }

functionmeizzWriteHead(yy,mm)//往 head 中写入当前的年与月...{
    odatelayer.meizzYearHead.innerText
=yy+"";
    odatelayer.meizzMonthHead.innerText
=mm+"";
  }

functiontmpSelectYearInnerHTML(strYear)//年份的下拉框...{
if(strYear.match(/D/)!=null)...{alert("年份输入参数不是数字!");return;}varm=(strYear)?strYear :newDate().getFullYear();
if(m<1000||m>9999)...{alert("年份值不在 1000 到 9999 之间!");return;}varn=m-10;
if(n<1000) n=1000;
if(n+26>9999) n=9974;
vars="<select Author=meizz name=tmpSelectYear style='font-size: 12px'"     s+="οnblur='document.all.tmpSelectYearLayer.style.display="none"'"     s+="οnchange='document.all.tmpSelectYearLayer.style.display="none";"     s+="parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'> ";
varselectInnerHTML=s;
for(vari=n; i<n+26; i++)
...{
if(i==m)
...{selectInnerHTML+="<option Author=wayx value='"+i+"' selected>"+i+""+"</option> ";}else...{selectInnerHTML+="<option Author=wayx value='"+i+"'>"+i+""+"</option> ";}  }
  selectInnerHTML+="</select>";
  odatelayer.tmpSelectYearLayer.style.display
="";
  odatelayer.tmpSelectYearLayer.innerHTML
=selectInnerHTML;
  odatelayer.tmpSelectYear.focus();
}

functiontmpSelectMonthInnerHTML(strMonth)//月份的下拉框...{
if(strMonth.match(/D/)!=null)...{alert("月份输入参数不是数字!");return;}varm=(strMonth)?strMonth :newDate().getMonth()+1;
vars="<select Author=meizz name=tmpSelectMonth style='font-size: 12px'"     s+="οnblur='document.all.tmpSelectMonthLayer.style.display="none"'"     s+="οnchange='document.all.tmpSelectMonthLayer.style.display="none";"     s+="parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'> ";
varselectInnerHTML=s;
for(vari=1; i<13; i++)
...{
if(i==m)
...{selectInnerHTML+="<option Author=wayx value='"+i+"' selected>"+i+""+"</option> ";}else...{selectInnerHTML+="<option Author=wayx value='"+i+"'>"+i+""+"</option> ";}  }
  selectInnerHTML+="</select>";
  odatelayer.tmpSelectMonthLayer.style.display
="";
  odatelayer.tmpSelectMonthLayer.innerHTML
=selectInnerHTML;
  odatelayer.tmpSelectMonth.focus();
}

functioncloseLayer()//这个层的关闭...{
    document.all.meizzDateLayer.style.display
="none";
  }

functionIsPinYear(year)//判断是否闰平年...{
if(0==year%4&&((year%100!=0)||(year%400==0)))returntrue;elsereturnfalse;
  }

functionGetMonthCount(year,month)//闰年二月为29天...{
varc=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;returnc;
  }
functionGetDOW(day,month,year)//求某天的星期几...{
vardt=newDate(year,month-1,day).getDay()/7;returndt;
  }

functionmeizzPrevY()//往前翻 Year...{
if(meizzTheYear>999&&meizzTheYear<10000)...{meizzTheYear--;}else...{alert("年份超出范围(1000-9999)!");}    meizzSetDay(meizzTheYear,meizzTheMonth);
  }
functionmeizzNextY()//往后翻 Year...{
if(meizzTheYear>999&&meizzTheYear<10000)...{meizzTheYear++;}else...{alert("年份超出范围(1000-9999)!");}    meizzSetDay(meizzTheYear,meizzTheMonth);
  }
functionmeizzToday()//Today Button...{
vartoday;
    meizzTheYear
=newDate().getFullYear();
    meizzTheMonth
=newDate().getMonth()+1;
    today
=newDate().getDate();
//meizzSetDay(meizzTheYear,meizzTheMonth);if(outObject)...{
        outObject.value
=meizzTheYear+"-"+meizzTheMonth+"-"+today;
    }
    closeLayer();
  }
functionmeizzPrevM()//往前翻月份...{
if(meizzTheMonth>1)...{meizzTheMonth--}else...{meizzTheYear--;meizzTheMonth=12;}    meizzSetDay(meizzTheYear,meizzTheMonth);
  }
functionmeizzNextM()//往后翻月份...{
if(meizzTheMonth==12)...{meizzTheYear++;meizzTheMonth=1}else...{meizzTheMonth++}    meizzSetDay(meizzTheYear,meizzTheMonth);
  }

functionmeizzSetDay(yy,mm)//主要的写程序**********...{
  meizzWriteHead(yy,mm);
//设置当前年月的公共变量为传入值meizzTheYear=yy;
  meizzTheMonth
=mm;
  
for(vari=0; i<39; i++)...{meizzWDay[i]=""};//将显示框的内容全部清空varday1=1,day2=1,firstday=newDate(yy,mm-1,1).getDay();//某月第一天的星期几for(i=0;i<firstday;i++)meizzWDay[i]=GetMonthCount(mm==1?yy-1:yy,mm==1?12:mm-1)-firstday+i+1//上个月的最后几天for(i=firstday; day1<GetMonthCount(yy,mm)+1; i++)...{meizzWDay[i]=day1;day1++;}for(i=firstday+GetMonthCount(yy,mm);i<39;i++)...{meizzWDay[i]=day2;day2++}for(i=0; i<39; i++)
...{varda=eval("odatelayer.meizzDay"+i)//书写新的一个月的日期星期排列if(meizzWDay[i]!="")
...
//初始化边框da.borderColorLight="#3A8FE8";
        da.borderColorDark
="#FFFFFF";
if(i<firstday)//上个月的部分...{
            da.innerHTML
="<b><font color=gray>"+meizzWDay[i]+"</font></b>";
            da.title
=(mm==1?12:mm-1)+""+meizzWDay[i]+"";
            da.onclick
=Function("meizzDayClick(this.innerText,-1)");
if(!outDate)
                da.style.backgroundColor
=((mm==1?yy-1:yy)==newDate().getFullYear()&&                    (mm==1?12:mm-1)==newDate().getMonth()+1&&meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0";
else...{
                da.style.backgroundColor
=((mm==1?yy-1:yy)==outDate.getFullYear()&&(mm==1?12:mm-1)==outDate.getMonth()+1&&                meizzWDay[i]==outDate.getDate())?"#00ffff":
                (((mm
==1?yy-1:yy)==newDate().getFullYear()&&(mm==1?12:mm-1)==newDate().getMonth()+1&&                meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0");
//将选中的日期显示为凹下去if((mm==1?yy-1:yy)==outDate.getFullYear()&&(mm==1?12:mm-1)==outDate.getMonth()+1&&                meizzWDay[i]==outDate.getDate())
...{
                    da.borderColorLight
="#FFFFFF";
                    da.borderColorDark
="#3A8FE8";
                }
            }
        }
elseif(i>=firstday+GetMonthCount(yy,mm))//下个月的部分...{
            da.innerHTML
="<b><font color=gray>"+meizzWDay[i]+"</font></b>";
            da.title
=(mm==12?1:mm+1)+""+meizzWDay[i]+"";
            da.onclick
=Function("meizzDayClick(this.innerText,1)");
if(!outDate)
                da.style.backgroundColor
=((mm==12?yy+1:yy)==newDate().getFullYear()&&                    (mm==12?1:mm+1)==newDate().getMonth()+1&&meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0";
else...{
                da.style.backgroundColor
=((mm==12?yy+1:yy)==outDate.getFullYear()&&(mm==12?1:mm+1)==outDate.getMonth()+1&&                meizzWDay[i]==outDate.getDate())?"#00ffff":
                (((mm
==12?yy+1:yy)==newDate().getFullYear()&&(mm==12?1:mm+1)==newDate().getMonth()+1&&                meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0");
//将选中的日期显示为凹下去if((mm==12?yy+1:yy)==outDate.getFullYear()&&(mm==12?1:mm+1)==outDate.getMonth()+1&&                meizzWDay[i]==outDate.getDate())
...{
                    da.borderColorLight
="#FFFFFF";
                    da.borderColorDark
="#3A8FE8";
                }
            }
        }
else//本月的部分...{
            da.innerHTML
="<b>"+meizzWDay[i]+"</b>";
            da.title
=mm+""+meizzWDay[i]+"";
            da.onclick
=Function("meizzDayClick(this.innerText,0)");//给td赋予onclick事件的处理//如果是当前选择的日期,则显示亮蓝色的背景;如果是当前日期,则显示暗黄色背景if(!outDate)
                da.style.backgroundColor
=(yy==newDate().getFullYear()&&mm==newDate().getMonth()+1&&meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0";
else...{
                da.style.backgroundColor
=(yy==outDate.getFullYear()&&mm==outDate.getMonth()+1&&meizzWDay[i]==outDate.getDate())?"#00ffff":((yy==newDate().getFullYear()&&mm==newDate().getMonth()+1&&meizzWDay[i]==newDate().getDate())?"#FFD700":"#e0e0e0");
//将选中的日期显示为凹下去if(yy==outDate.getFullYear()&&mm==outDate.getMonth()+1&&meizzWDay[i]==outDate.getDate())
...{
                    da.borderColorLight
="#FFFFFF";
                    da.borderColorDark
="#3A8FE8";
                }
            }
        }
        da.style.cursor="hand"      }
else...{da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"}  }
}

functionmeizzDayClick(n,ex)//点击显示框选取日期,主输入函数*************...{
varyy=meizzTheYear;
varmm=parseInt(meizzTheMonth)+ex;//ex表示偏移量,用于选择上个月份和下个月份的日期//判断月份,并进行对应的处理if(mm<1)...{
        yy
--;
        mm
=12+mm;
    }
elseif(mm>12)...{
        yy
++;
        mm
=mm-12;
    }
    
if(mm<10)...{mm="0"+mm;}if(outObject)
...{
if(!n)...{//outObject.value="";return;}if( n<10)...{n="0"+n;}    outObject.value=yy+"-"+mm+"-"+n ;//注:在这里你可以输出改成你想要的格式closeLayer(); 
  }
else...{closeLayer(); alert("您所要输出的控件对象并不存在!");}}

梅花雨做的一个日历 Javascript 页面脚本控件相关推荐

  1. 梅花雨做的一个日历控件

    这是梅花雨做的一个日历 Javascript 页面脚本控件,适用于微软的 IE (5.0以上)浏览器 主调用函数是 setday(this,[object])和setday(this),[object ...

  2. 从外部的js文件中获取ASPX页面的控件ClientID(get control reference from external javascript)...

    前言 当使用MasterPage.UserControl等容器时,为了避免控件的重复命名,asp.net会自动将容器中的控件生成一个ClientID(Control Tree中的可生成,否则不会生成) ...

  3. Javascript调用OCX控件

    什么是ocx控件? 对象链接和嵌入用户控件(OCX)是一种可以由在微软的Windows系统中运行的应用软件创建使用的特殊用途的程序. 想知道究竟的可以看看这个帖子. http://www.tososo ...

  4. 【VS开发】免费打工仔:一个完善的ActiveX Web控件教程

    作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个ActiveX控件.其中将要讲解关于ActiveX开发的一些基础概念,诸如方法(method).属性(prope ...

  5. 免费打工仔:一个完善的ActiveX Web控件教程

    免费打工仔:一个完善的ActiveX Web控件教程 出自Ogre3D开放资源地带 跳转到: 导航, 搜索 原作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一个A ...

  6. 一个完善的ActiveX Web控件教程

    免费打工仔:一个完善的ActiveX Web控件教程 出自Ogre3D开放资源地带 跳转到:  导航,  搜索 原作者 David Marcionek. 翻译 免费打工仔 这个教程可以帮助你快速开发一 ...

  7. JavaScript使用ACTIVEX控件引起崩溃问题的解决

    JavaScript使用ACTIVEX控件引起崩溃问题的解决 问题 在本人目前的项目中,前端部分完全使用EXTJS基于"One-Page"理念搭建.除了一个HTML作为基本容器外, ...

  8. javascript调用activex控件

    代码 <HTML> <BODY> <object classid="clsid:CA8A9780-280D-11CF-A24D-444553540000&quo ...

  9. JavaScript 操作 COM 控件

    目标:用JavaScript 脚本代码调用COM控件,实现基本功能操作: 1.定义及初始化COM控件: 2.调用COM接口: 3.注册COM事件并实现事件调用. 1. 定义及初始化COM控件      ...

最新文章

  1. myVariable是java标识符吗_java 标识符与变量
  2. mac地址转换_mac电脑格式转化工具
  3. mysql查询库中所有的表名,mysql查询指定表中的所有字段名及其相关信息
  4. 链接生成动态二维码图片显示在页面上
  5. SQL Server :理解GAM和SGAM页
  6. initramfs文件解压方法
  7. GDB 反向调试(Reverse Debugging)
  8. Ubuntu 20.04 LTS 修改IP地址
  9. hdu多校(三)1004 Tokitsukaze and Multiple(easydp)
  10. 工业相机镜头相关知识整理
  11. A slightly scary story on Amazons
  12. 俄罗斯方块游戏shell编程代码
  13. 云服务器系统种类,云服务器系统种类
  14. docker搭建openstf, 远程无延时控制手机
  15. css加透明边框,CSS3实现透明边框的方法分享
  16. Redis 内存分析神器
  17. 英语月份、星期、日期的缩写
  18. SuperMap iClient3D for WebGL风向风速对粒子的影响
  19. php.net国内镜像及php源码下载[非常快]
  20. [附源码]java毕业设计校园跑腿系统

热门文章

  1. 小散户给自己写一个交易软件-篇(1)
  2. 小米5x html,小米5X是什么接口_小米5X充电接口是什么-太平洋IT百科
  3. iOS开源组件__仿写QQ/微信聊天键盘(表情,问题,输入框)纯代码,无依赖
  4. LS-DYNA——电视机跌落实验
  5. Linux基本功系列之userdel命令实战
  6. Kotlin - byte转 int
  7. multisim数字逻辑课程设计
  8. 移动端网页开发三(纠结适配的那些年)
  9. 赫尔德不等式证明闵可夫斯基不等式
  10. Git中SSH公钥配置