以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 HTML/XHTML/Ajax/Web 2.0/Web 3.0 』  (http://bbs.xml.org.cn/list.asp?boardid=22)
----  基于POPUP,不会被盖掉的日历控件  (http://bbs.xml.org.cn/dispbbs.asp?boardid=22&rootid=&id=28667)


--  作者:cwzb
--  发布时间:3/14/2006 11:56:00 PM

--  基于POPUP,不会被盖掉的日历控件
个人新作品(基于POPUP,不会被盖掉的日历控件):

此主题相关图片如下:
按此在新窗口浏览图片

刚刚完成的,先展示一个图片,明天再把原码放出来供大家下载.


--  作者:colky
--  发布时间:3/15/2006 2:38:00 PM

--  
咋还要等到明天呢~~~郁闷
--  作者:cwzb
--  发布时间:3/15/2006 11:41:00 PM

--  
/*

    本日历控件基于POPUP,专为解决日历控件被窗口遮盖的问题而设计

    作者信息:谢月甲,没有耳多,biisom@gmail.com,http://www.cwzb.name
    
    修改日志:
    ---------------------------------------------------------------
    20060314:正试完成封装
    20060312:初步完成功能
*/

function Calendar()
{
    this.version = "0.0.06.0314";
    
    this.show = function(refObj)
    {
        this._init(refObj);
        
        this._popup.show(0,refObj.offsetHeight,180,162,refObj);
    }
    
    this.hide = function()
    {
        this._popup.hide();
    }
    
    this._popup = null;        
    this._init  = function(refObj)
    {
        if(this._popup == null)
        {
            this._popup = window.createPopup();
            
            this._popup.document.body.innerHTML = unescape(htmlCode);
            
            var bodyHTML = this._popup.document.body.outerHTML;
            this._popup.document.write("<head><style> div,table,select,td,input{font-size:9pt;font-family:宋体;} input,select{border: gray 1px solid;} </style></head>");
            this._popup.document.write(bodyHTML);
            this._popup.document.write("<script>");
            this._popup.document.write(procScript.replace("{0}",refObj.id) + " \n");
            this._popup.document.write(unescape(mainScript) +" \n");
            this._popup.document.write("init(); \n");
            this._popup.document.write("<\/script> \n");
        }
    }
}

Calendar._G_M  = null;
Calendar._C_M  = null;
Calendar.Show = function(refObj,showNew)
{
    if(typeof(refObj) == "string")
        refObj = document.getElementById(refObj);
        
    if(showNew)
    {
        Calendar._C_M = new Calendar();
        
        Calendar._C_M.show(refObj);
    }
    else
    {        
        if(Calendar._G_M == null)
            Calendar._G_M = new Calendar();
        
        Calendar._C_M = Calendar._G_M;
        Calendar._C_M.show(refObj);
    }
}

Calendar.Hide = function()
{
    Calendar._C_M.hide();
}

var mainScript = "function%20_build%28y%2Cm%29%0D%0A%7B%0D%0A%20%20%20%20if%28y%20%3D%3D%20null%29%7By%20%3D%20%24%28%22year%22%29.value%3B%7D%0D%0A%20%20%20%20if%28m%20%3D%3D%20null%29%7Bm%20%3D%20%24%28%22month%22%29.value%3B%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20var%20begin_Day%20%3D%201%3B%0D%0A%20%20%20%20var%20last_Day%20%3D%20_getLastDay%28y%2Cm%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20var%20begin_week%20%3D%20_getWeek%28y%2Cm%2Cbegin_Day%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20var%20temp%20%3D%20begin_Day%3B%0D%0A%20%20%20%20var%20cell%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20for%28var%20i%3D0%3B%20i%3C6%3B%20i++%29%0D%0A%20%20%20%20%7B%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20for%28var%20j%3D0%3B%20j%3C7%3B%20j++%29%0D%0A%20%20%20%20%20%20%20%20%7B%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell%20%3D%20%24%28%22c%22+i%20+%20%22%22%20+j%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20if%28i%20%3D%3D%200%20%26%26%20j%3Cbegin_week%29%7Bcell.innerText%20%3D%20%22%20%22%3B%7Delse%7Bif%28temp%20%3C%3D%20last_Day%29%7Bcell.innerText%20%3D%20temp%3B%20temp%20++%3B%7D%20else%7Bcell.innerText%20%3D%20%22%20%22%3B%7D%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%7D%0D%0A%0D%0Afunction%20_getLastDay%28y%2Cm%29%0D%0A%7B%0D%0A%20%20%20%20if%28%28m%20%3C%208%20%26%26%20m%252%20%3D%3D%201%29%20%7C%7C%20%28m%20%3E%207%20%26%26%20m%252%20%3D%3D%200%29%29%20return%2031%3B%0D%0A%20%20%20%20else%20if%28m%20%21%3D%202%29%20return%2030%3B%0D%0A%20%20%20%20else%7Bif%28%28y%254%20%3D%3D0%29%20%26%26%20%28%28y%25100%20%21%3D%200%29%7C%7C%28y%25400%20%3D%3D%200%29%29%29%20%7B%20return%2029%3B%7D%20else%20%7Breturn%2028%3B%7D%7D%0D%0A%7D%0D%0A%0D%0Afunction%20_getWeek%28y%2Cm%2Cd%29%0D%0A%7B%0D%0A%20%20%20return%20new%20Date%28y%2Cm-1%2Cd%29.getDay%28%29%20%25%207%3B%0D%0A%7D%0D%0A%20%20%20%20%20%20%20%20%0D%0Afunction%20_rebuildYear%28y%29%0D%0A%7B%0D%0A%20%20%20%20var%20maxY%20%3D%20y%20+%205%3B%0D%0A%20%20%20%20var%20minY%20%3D%20y%20-%205%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20var%20htmlText%20%3D%20%22%3Cselect%20id%3D%27year%27%20onchange%3D%27chanage%28%29%3B%27%3E%22%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20for%28var%20i%3DminY%3B%20i%3CmaxY%3B%20i++%29%0D%0A%20%20%20%20%20%20%20%20htmlText%20+%3D%22%3Coption%20value%3D%27%22+i+%22%27%3E%22+i+%22%3C/option%3E%22%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20htmlText%20+%3D%20%22%3C/select%3E%22%3B%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%24%28%22year%22%29.outerHTML%20%3D%20%20htmlText%3B%0D%0A%7D%0D%0A%0D%0A%0D%0Afunction%20init%28%29%0D%0A%7B%0D%0A%20%20%20%20var%20cell%20%3D%20null%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20for%28var%20i%3D0%3B%20i%3C6%3B%20i++%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20for%28var%20j%3D0%3B%20j%3C7%3B%20j++%29%0D%0A%20%20%20%20%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell%20%3D%20%24%28%22c%22+i%20+%20%22%22%20+j%29%3B%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell.align%20%20%20%3D%20%22center%22%3B%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell.onclick%20%20%20%20%20%3D%20processData%3B%20%20%20%20%20%20%20%20%20%20%20%20%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell.onmouseout%20%20%3D%20function%28%29%7Bthis.style.backgroundColor%20%3D%20%22%22%3B%7D%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20cell.onmouseover%20%3D%20function%28%29%7Bthis.style.backgroundColor%20%3D%20td_onmoveover_color%3B%7D%0D%0A%20%20%20%20%20%20%20%20%7D%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20var%20y%20%3D%20new%20Date%28%29.getFullYear%28%29%3B%0D%0A%0D%0A%20%20%20%20_rebuildYear%28y%29%3B%0D%0A%20%20%20%20%24%28%22year%22%29.value%20%3D%20y%0D%0A%20%20%20%20%0D%0A%20%20%20%20chanage%28%22init%22%29%3B%0D%0A%7D%0D%0A%0D%0Afunction%20chanage%28e%29%0D%0A%7B%0D%0A%20%20%20%20var%20y%20%3D%20parseInt%28%24%28%22year%22%29.value%29%3B%0D%0A%20%20%20%20var%20y_copy%20%3D%20y%3B%0D%0A%20%20%20%20var%20m%20%3D%20parseInt%28%24%28%22month%22%29.value%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20switch%28e%29%0D%0A%20%20%20%20%7B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3E%22%3A%20if%28m%20%3D%3D%2012%29%7By%20++%3Bm%20%3D%201%3B%7Delse%7Bm%20++%3B%7D%20break%3B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3C%22%3A%20if%28m%20%3D%3D%201%29%7By%20--%3Bm%20%3D%2012%3B%7Delse%7Bm--%3B%7D%20break%3B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3E%3E%22%3A%20y%20++%3B%20break%3B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3C%3C%22%3A%20y%20--%3B%20break%3B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3E%3E%3E%22%3A%20y%20+%3D%2010%3B%20break%3B%0D%0A%20%20%20%20%20%20%20%20case%20%22%3C%3C%3C%22%3A%20y%20-%3D%2010%3B%20break%3B%0D%0A%20%20%20%20%7D%0D%0A%20%20%20%20%0D%0A%20%20%20%20if%28e%20%21%3D%20%22init%22%29//%u5728%u521D%u59CB%u5316%u7684%u65F6%u5019%u4F1A%u6784%u5EFA%u4E00%u6B21%u5E74%u4EFD%uFF0C%u6240%u4EE5%u4E0D%u9700%u8981%u518D%u53BB%u6784%u5EFA%u4E86%0D%0A%20%20%20%20%20%20%20%20_rebuildYear%28y%29%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20%24%28%22year%22%29.value%20%3D%20y%3B%0D%0A%20%20%20%20%24%28%22month%22%29.value%20%3D%20m%3B%0D%0A%20%20%20%20%0D%0A%20%20%20%20_build%28y%2Cm%29%3B%0D%0A%7D%20";
var procScript = ""+
"var td_onmoveover_color = 'green'; \n"+
"function $(id){return document.getElementById(id);} \n"+    
"function processData(e)"+
"    {"+
"        if(e == null)"+
"           e = event.srcElement;"+
"     "+
"        var y = parseInt($(\"year\").value);"+
"        var m = parseInt($(\"month\").value);"+
"        "+
"        var d = e.innerText.replace(/ /g,\"\");"+
"        var temp = null; "+
"        if(d.length > 0)"+
"        {"+
"            temp = y+\"-\"+m+\"-\"+d;"+
"            e.style.backgroundColor = '';"+
"        }"+
"        else if(e.tagName.toLowerCase() == 'input')"+
"            temp = y+\"-\"+m;"+
"     "+
"        if(temp != null)"+
"        {"+
"           var p_temp = parent.document.getElementById(\"{0}\");"+
"           p_temp.value = temp;"+
"           parent.Calendar.Hide();"+
"        }"+
"    }";

var htmlCode = "%3Cdiv%20align%3D%22center%22%20style%3D%22border%3A%20gray%201px%20solid%3B%20padding%3A%202px%3B%20font-size%3A%209pt%3B%20width%3A%20180px%3B%22%3E%0D%0A%20%20%20%20%3Cdiv%20id%3D%22head%22%20style%3D%22height%3A23px%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3C%27%29%3B%22%20value%3D%22M%3C%22%20title%3D%22%u540E%u90001%u4E2A%u6708%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cselect%20id%3D%22year%22%20onchange%3D%22chanage%28%29%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%222006%22%3E2006%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%3C/select%3E%0D%0A%20%20%20%20%20%20%20%20%3Cselect%20id%3D%22month%22%20onchange%3D%22chanage%28%29%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%2212%22%3E12%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%2211%22%3E11%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%2210%22%3E10%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%229%22%3E09%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%228%22%3E08%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%227%22%3E07%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%226%22%3E06%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%225%22%3E05%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%224%22%3E04%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%223%22%3E03%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%222%22%3E02%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Coption%20value%3D%221%22%3E01%3C/option%3E%0D%0A%20%20%20%20%20%20%20%20%3C/select%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3E%27%29%3B%22%20value%3D%22%3EM%22%20title%3D%22%u524D%u8FDB1%u4E2A%u6708%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20value%3D%22OK%22%20onclick%3D%22processData%28this%29%3B%22%20title%3D%22%u76F4%u63A5%u9009%u62E9%u5E74%u6708%22%20/%3E%0D%0A%20%20%20%20%3C/div%3E%0D%0A%20%20%20%20%3Cdiv%20id%3D%22body%22%3E%0D%0A%20%20%20%20%3Ctable%20width%3D%22100%25%22%20style%3D%22font-size%3A%209pt%3B%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cthead%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%u65E5%3C/td%3E%3Ctd%3E%u4E00%3C/td%3E%3Ctd%3E%u4E8C%3C/td%3E%3Ctd%3E%u4E09%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%3E%u56DB%3C/td%3E%3Ctd%3E%u4E94%3C/td%3E%3Ctd%3E%u516D%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%3C/thead%3E%0D%0A%20%20%20%20%20%20%20%20%3Ctbody%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c00%22%3E%3C/td%3E%3Ctd%20id%3D%22c01%22%3E%3C/td%3E%3Ctd%20id%3D%22c02%22%3E%3C/td%3E%3Ctd%20id%3D%22c03%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c04%22%3E%3C/td%3E%3Ctd%20id%3D%22c05%22%3E%3C/td%3E%3Ctd%20id%3D%22c06%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c10%22%3E%3C/td%3E%3Ctd%20id%3D%22c11%22%3E%3C/td%3E%3Ctd%20id%3D%22c12%22%3E%3C/td%3E%3Ctd%20id%3D%22c13%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c14%22%3E%3C/td%3E%3Ctd%20id%3D%22c15%22%3E%3C/td%3E%3Ctd%20id%3D%22c16%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c20%22%3E%3C/td%3E%3Ctd%20id%3D%22c21%22%3E%3C/td%3E%3Ctd%20id%3D%22c22%22%3E%3C/td%3E%3Ctd%20id%3D%22c23%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c24%22%3E%3C/td%3E%3Ctd%20id%3D%22c25%22%3E%3C/td%3E%3Ctd%20id%3D%22c26%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c30%22%3E%3C/td%3E%3Ctd%20id%3D%22c31%22%3E%3C/td%3E%3Ctd%20id%3D%22c32%22%3E%3C/td%3E%3Ctd%20id%3D%22c33%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c34%22%3E%3C/td%3E%3Ctd%20id%3D%22c35%22%3E%3C/td%3E%3Ctd%20id%3D%22c36%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c40%22%3E%3C/td%3E%3Ctd%20id%3D%22c41%22%3E%3C/td%3E%3Ctd%20id%3D%22c42%22%3E%3C/td%3E%3Ctd%20id%3D%22c43%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c44%22%3E%3C/td%3E%3Ctd%20id%3D%22c45%22%3E%3C/td%3E%3Ctd%20id%3D%22c46%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3Ctr%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c50%22%3E%3C/td%3E%3Ctd%20id%3D%22c51%22%3E%3C/td%3E%3Ctd%20id%3D%22c52%22%3E%3C/td%3E%3Ctd%20id%3D%22c53%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%3Ctd%20id%3D%22c54%22%3E%3C/td%3E%3Ctd%20id%3D%22c55%22%3E%3C/td%3E%3Ctd%20id%3D%22c56%22%3E%3C/td%3E%0D%0A%20%20%20%20%20%20%20%20%20%20%20%20%3C/tr%3E%0D%0A%20%20%20%20%20%20%20%20%3C/tbody%3E%0D%0A%20%20%20%20%3C/table%3E%0D%0A%20%20%20%20%3C/div%3E%0D%0A%20%20%20%20%3Cdiv%20id%3D%22foot%22%20align%3D%22center%22%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3C%3C%3C%27%29%3B%22%20value%3D%2210Y%3C%22%20title%3D%22%u540E%u900010%u5E74%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3C%3C%27%29%3B%22%20value%3D%22Y%3C%22%20title%3D%22%u540E%u90001%u5E74%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3C%27%29%3B%22%20value%3D%22M%3C%22%20title%3D%22%u540E%u90001%u4E2A%u6708%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3E%27%29%3B%22%20value%3D%22%3EM%22%20title%3D%22%u524D%u8FDB1%u4E2A%u6708%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3E%3E%27%29%3B%22%20value%3D%22%3EY%22%20title%3D%22%u524D%u8FDB1%u5E74%22%20/%3E%0D%0A%20%20%20%20%20%20%20%20%3Cinput%20type%3D%22button%22%20onclick%3D%22chanage%28%27%3E%3E%3E%27%29%3B%22%20value%3D%22%3E10Y%22%20title%3D%22%u524D%u8FDB10%u5E74%22%20/%3E%0D%0A%20%20%20%20%3C/div%3E%0D%0A%3C/div%3E";

/*

有关被加转换的字符串(mainScript及htmlCode),请参考以下代码

  
**/
    
//mainScript::
/*
function _build(y,m)
{
    if(y == null){y = $("year").value;}
    if(m == null){m = $("month").value;}
    
    var begin_Day = 1;
    var last_Day = _getLastDay(y,m);
    
    var begin_week = _getWeek(y,m,begin_Day);
    
    var temp = begin_Day;
    var cell = null;
            
    for(var i=0; i<6; i++)
    {            
        for(var j=0; j<7; j++)
        {   
            cell = $("c"+i + "" +j);                                            
            if(i == 0 && j<begin_week){cell.innerText = " ";}else{if(temp <= last_Day){cell.innerText = temp; temp ++;} else{cell.innerText = " ";}}
        }
    }
}

function _getLastDay(y,m)
{
    if((m < 8 && m%2 == 1) || (m > 7 && m%2 == 0)) return 31;
    else if(m != 2) return 30;
    else{if((y%4 ==0) && ((y%100 != 0)||(y%400 == 0))) { return 29;} else {return 28;}}
}

function _getWeek(y,m,d)
{
   return new Date(y,m-1,d).getDay() % 7;
}
        
function _rebuildYear(y)
{
    var maxY = y + 5;
    var minY = y - 5;
    
    var htmlText = "<select id='year' onchange='chanage();'>";
    
    for(var i=minY; i<maxY; i++)
        htmlText +="<option value='"+i+"'>"+i+"</option>";
    
    htmlText += "</select>";    
                
    $("year").outerHTML =  htmlText;
}


function init()
{
    var cell = null;
            
    for(var i=0; i<6; i++)
    {
        for(var j=0; j<7; j++)
        {
            cell = $("c"+i + "" +j);                    
            cell.align   = "center";
            
            cell.onclick     = processData;            
            cell.onmouseout  = function(){this.style.backgroundColor = "";}
            cell.onmouseover = function(){this.style.backgroundColor = td_onmoveover_color;}
        }
    }
    
    var y = new Date().getFullYear();

    _rebuildYear(y);
    $("year").value = y
    
    chanage("init");
}

function chanage(e)
{
    var y = parseInt($("year").value);
    var y_copy = y;
    var m = parseInt($("month").value);
    
    switch(e)
    {
        case ">": if(m == 12){y ++;m = 1;}else{m ++;} break;
        case "<": if(m == 1){y --;m = 12;}else{m--;} break;
        case ">>": y ++; break;
        case "<<": y --; break;
        case ">>>": y += 10; break;
        case "<<<": y -= 10; break;
    }
    
    if(e != "init")//在初始化的时候会构建一次年份,所以不需要再去构建了
        _rebuildYear(y);
    
    $("year").value = y;
    $("month").value = m;
    
    _build(y,m);
}  
*/

//htmlCode::
/*
<div align="center" style="border: gray 1px solid; padding: 2px; font-size: 9pt; width: 180px;">
    <div id="head" style="height:23px;">
        <input type="button" onclick="chanage('<');" value="M<" title="后退1个月" />
        <select id="year" onchange="chanage();">
            <option value="2006">2006</option>
        </select>
        <select id="month" onchange="chanage();">
            <option value="12">12</option>
            <option value="11">11</option>
            <option value="10">10</option>
            <option value="9">09</option>
            <option value="8">08</option>
            <option value="7">07</option>
            <option value="6">06</option>
            <option value="5">05</option>
            <option value="4">04</option>
            <option value="3">03</option>
            <option value="2">02</option>
            <option value="1">01</option>
        </select>
        <input type="button" onclick="chanage('>');" value=">M" title="前进1个月" />
        <input type="button" value="OK" onclick="processData(this);" title="直接选择年月" />
    </div>
    <div id="body">
    <table width="100%" style="font-size: 9pt;">
        <thead>
            <tr>
                <td>日</td><td>一</td><td>二</td><td>三</td>
                <td>四</td><td>五</td><td>六</td>
            </tr>
        </thead>
        <tbody>
            <tr>
                <td id="c00"></td><td id="c01"></td><td id="c02"></td><td id="c03"></td>
                <td id="c04"></td><td id="c05"></td><td id="c06"></td>
            </tr>
            <tr>
                <td id="c10"></td><td id="c11"></td><td id="c12"></td><td id="c13"></td>
                <td id="c14"></td><td id="c15"></td><td id="c16"></td>
            </tr>
            <tr>
                <td id="c20"></td><td id="c21"></td><td id="c22"></td><td id="c23"></td>
                <td id="c24"></td><td id="c25"></td><td id="c26"></td>
            </tr>
            <tr>
                <td id="c30"></td><td id="c31"></td><td id="c32"></td><td id="c33"></td>
                <td id="c34"></td><td id="c35"></td><td id="c36"></td>
            </tr>
            <tr>
                <td id="c40"></td><td id="c41"></td><td id="c42"></td><td id="c43"></td>
                <td id="c44"></td><td id="c45"></td><td id="c46"></td>
            </tr>
            <tr>
                <td id="c50"></td><td id="c51"></td><td id="c52"></td><td id="c53"></td>
                <td id="c54"></td><td id="c55"></td><td id="c56"></td>
            </tr>
        </tbody>
    </table>
    </div>
    <div id="foot" align="center">
        <input type="button" onclick="chanage('<<<');" value="10Y<" title="后退10年" />
        <input type="button" onclick="chanage('<<');" value="Y<" title="后退1年" />
        <input type="button" onclick="chanage('<');" value="M<" title="后退1个月" />
        <input type="button" onclick="chanage('>');" value=">M" title="前进1个月" />
        <input type="button" onclick="chanage('>>');" value=">Y" title="前进1年" />
        <input type="button" onclick="chanage('>>>');" value=">10Y" title="前进10年" />
    </div>
</div>
*/


--  作者:cwzb
--  发布时间:3/15/2006 11:46:00 PM

--  
calendar_popup_demo.htm(应用示例)


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>popup calendar demo</title>

    <script type="text/javascript" src="calendar_popup.js"></script>
    <!-- 要求接收数据的控件必须要有ID号 -->
</head>
<body>
    <input type="text" id="test" onclick="Calendar.Show(this);" />
    <input type="text" id="Text1" onclick="Calendar.Show(this,true);" />
</body>
</html>


--  作者:孔南
--  发布时间:3/24/2006 3:56:00 PM

--  
已使用! 非常之好用! 谢谢!
[奇怪我上次下载已后为什么没顶!]
--  作者:kenneygg
--  发布时间:3/31/2006 3:08:00 PM

--  
强烈建议大包下载
--  作者:zhengwing
--  发布时间:4/7/2006 2:40:00 PM

--  
不错,最好可以把时分秒加上


--  作者:cwzb
--  发布时间:4/8/2006 5:25:00 PM

--  
我最近封装了一个新版本,不过上面提供的代码已经差不多了...大家可以改写一下做成自己喜欢的控件...

留不留下我的名字无所谓..(能留下一,自然是最好了:))


--  作者:Kylin.Oak
--  发布时间:12/11/2009 10:58:00 PM

--  
牛人
--  作者:skymoon
--  发布时间:8/26/2011 11:10:00 AM

--  
牛叉

W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
125.000ms