复制内容到剪贴板
代码:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style>
#selectMY td{ width:50%; }
#yearS_D { position:absolute width:100px; height:200px; }
#yearS_D td{ border:2px #000000 solid; background:#CCCCCC; }
#monthS_D { position:absolute; border:2px #000000 solid; background:#CCCCCC; }
.table { width:280px; border:1px #000000 solid; text-align:center;}
.table td{ width:30px; height:16px; }
input{
border:1px solid blue;
background:transparent;
}
</style>
</head>
<body>
<hr>
单击文本框:<input type="text" onclick="calendar.initialize(this)" onblur="" />
</body>复制内容到剪贴板
代码:
<script>
var calendar = {
_obj: null,
_$: function(id){
return document.getElementById(id);
},
dateObj: function(){
var y = arguments[0];
var m = arguments[1];
var d = arguments[2];
switch(arguments.length){
case 0:
case 1:
return new Date();
case 2:
return new Date(y, m, 0);
case 3:
return new Date(y, m, d);
default:
return false;
}
},
time: function(y,m,d){
return{
year: this.dateObj(y,m,d).getFullYear(),
month: this.dateObj(y,m,d).getMonth(),
day: this.dateObj(y,m,d).getDay(),
date: this.dateObj(y,m,d).getDate()
}
},
month: function(y,m,d){
return this.dateObj(y,m,d).getMonth();
},
calendarCon: function(y,m,d,type){
var dateX = new Array()
if(this.time(y,m,d).day !=0){
for(var i=0;i<this.time(y,m,d).day;i++){
dateX[i] = '';
}
}
//alertthis.time(2008,4,1).month);
//alert(this.time(y,m,d).month);
//lert(this.time(y,m,d).day);
var date = new Array(this.time(y,m+1,d-1).month);
for(var i=0; i<this.time(y,m+1,d-1).date; i++){
date[i] = i+1;
}
//alert(date);
var calendar = dateX.concat(date);
var num = 0;
var calendarConn = '<table class="table">';
for(var i=0;i<Math.ceil(calendar.length/7);i++){
calendarConn += '<tr>';
for(var ii=0; ii<7;ii++){
if(typeof calendar[num] == 'undefined'){
calendar[num] = '';
}
if(calendar[num] == ''){
calendarConn += '<td>'+calendar[num]+'</td>';
}else{
calendarConn += '<td onclick="calendar.nDay(this.innerHTML)">'+calendar
[num]+'</td>';
}
num++;
}
calendarConn += '</tr>';
}
calendarConn += '</table>';
if(type == 'update'){
this._$('calendarConn').innerHTML = this.calendarCon(y,m,1);
}else{
return calendarConn;
}
},
calendarFrame: function(y,m,d){
var dateX = new Array()
if(this.time(y,m,d).day !=0){
for(var i=0;i<this.time(y,m,d).day;i++){
dateX[i] = '';
}
}
/* 时间 */
var date = new Array(this.time(y,m,d).month);
for(var i=0; i<date.length; i++){
date[i] = i+1
}
// 所在日历数组
var calendar = dateX.concat(date);
var num = 0;
calendarCon = '<table class="table" class="table">';
calendarCon += '<thead><tr id="selectMY"><td colspan="3"><span id="year" onclick="calendar.yearS
()"></span></td><td colspan="4"><span id="month" onclick="calendar.monthS()"></span></td></tr></table>';
calendarCon += '<table class="table"><tr><td>日</td><td>一</td><td>二</td><td>三</td><td>四
</td><td>五</td><td>六</td></tr></table>';
calendarCon += '</table><div id="calendarConn"></div></div>';
return calendarCon;
},
monthS: function(){
if(this._$('monthS_D') != null){
document.body.removeChild($('monthS_D'));
}else{
var monthS_D = document.createElement('div');
monthS_D.id = 'monthS_D'
document.body.appendChild(monthS_D);
if(this._$('yearS_D') != null){
document.body.removeChild(this._$('yearS_D'));
}
monthS_D.style.position='absolute';
monthS_D.style.top = this._$('calendarhtml').offsetTop +
this._$('selectMY').offsetHeight+'px';
monthS_D.style.left = this._$('calendarhtml').offsetLeft +
this._$('month').parentNode.offsetLeft + this._$('month').offsetLeft+'px';
var m = '<table>'
for(var i=0; i<12; i++){
m += '<tr><td onclick="calendar.nMonth(this.innerHTML)">'+(i+1)+'月</td></tr>'
}
m+='</table>';
monthS_D.innerHTML = m;
}
},
yearS: function(){
if(this._$('yearS_D') != null){
document.body.removeChild(this._$('yearS_D'));
}else{
var yearS_D = document.createElement('div');
yearS_D.id = 'yearS_D'
document.body.appendChild(yearS_D);
if(this._$('monthS_D') != null){
document.body.removeChild(this._$('monthS_D'));
}
yearS_D.style.position='absolute';
yearS_D.style.top = this._$('calendarhtml').offsetTop +
this._$('selectMY').offsetHeight+'px';
yearS_D.style.left = this._$('calendarhtml').offsetLeft +
this._$('year').offsetLeft+3+'px';
nowY = this.dateObj().getFullYear();;
beY = nowY-50;
afY = nowY+50;
yX = afY-beY;
arrY = new Array(yX);
for(var i=0; i<yX; i++){
arrY[i] = (nowY - yX/2 + i);
}
years = '<table><tr>';
var num = 0
for(var i=0;i<yX/10; i++){
years += '<td>';
for(var ii=0;ii<yX/(yX/10);ii++){
years += '<div onclick="calendar.nYear(this.innerHTML)">'+arrY[num]
+'</div>';
num++
}
years += '</td>';
}
years += '</tr></table>';
yearS_D.innerHTML = years;
}
},
nYear: function(innerHTML){
this._$('year').innerHTML = innerHTML+'年';
this.calendarCon(innerHTML,parseInt(this._$('month').innerHTML)-1,1,'update');
document.body.removeChild(this._$('yearS_D'));
},
nMonth: function(innerHTML){
this._$('month').innerHTML = parseInt(innerHTML)+'月';
this.calendarCon(parseInt(this._$('year').innerHTML),parseInt(innerHTML)-1,1,'update');
document.body.removeChild(this._$('monthS_D'));
},
nDay: function(innerHTML){
this.obj.value = (this._$('year').innerHTML+' '+this._$('month').innerHTML+' '+innerHTML+'日');
document.body.removeChild(this._$('calendarhtml'));
},
initialize: function(obj){
if(this._$('calendarhtml') != null){
return;
}
this.obj = obj;
var y = this.dateObj().getFullYear();
var m = this.dateObj().getMonth();
var calendar = document.createElement('div');
document.body.appendChild(calendar);
calendar.id = 'calendarhtml';
this._$('calendarhtml').style.position = 'absolute';
this._$('calendarhtml').style.left = obj.offsetLeft + 'px';
this._$('calendarhtml').style.top = obj.offsetTop+obj.offsetHeight+'px';
calendar.innerHTML = this.calendarFrame(y,m,1);
this._$('calendarConn').innerHTML = this.calendarCon(y,m,1);
this._$('year').innerHTML = this.time(y,m,0).year+'年';
this._$('month').innerHTML = this.time(y,m,0).month+2+'月';
}
}
</script>
</html>