屏蔽鼠标右键

在body 中加入


oncontextmenu="return false;"





<html>      
 <head>      
     <meta   http-equiv="Content-Type"   content="text/html;   charset=gb2312">      
     <noscript><meta   http-equiv="refresh"   content="0;url=about:noscript"></noscript>      
     <title>屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键</title>      
 </head>      
 <body>      
 <script   language="Javascript"><!--      
     //屏蔽鼠标右键、Ctrl+N、Shift+F10、F11、F5刷新、退格键      
     //Author:   meizz(梅花雨)   2002-6-18      
 function   document.oncontextmenu(){event.returnValue=false;}//屏蔽鼠标右键      
 function   window.onhelp(){return   false}   //屏蔽F1帮助      
 function   document.onkeydown()      
 {      
     if   ((window.event.altKey)&&      
             ((window.event.keyCode==37)||       //屏蔽   Alt+   方向键   ←      
               (window.event.keyCode==39)))       //屏蔽   Alt+   方向键   →      
     {      
           alert("不准你使用ALT+方向键前进或后退网页!");      
           event.returnValue=false;      
     }      
           /*   注:这还不是真正地屏蔽   Alt+   方向键,      
           因为   Alt+   方向键弹出警告框时,按住   Alt   键不放,      
           用鼠标点掉警告框,这种屏蔽方法就失效了。以后若      
           有哪位高手有真正屏蔽   Alt   键的方法,请告知。*/      
     if   ((event.keyCode==8)     ||                                   //屏蔽退格删除键      
             (event.keyCode==116)||                                   //屏蔽   F5   刷新键      
             (event.ctrlKey   &&   event.keyCode==82)){   //Ctrl   +   R      
           event.keyCode=0;      
           event.returnValue=false;      
           }      
     if   (event.keyCode==122){event.keyCode=0;event.returnValue=false;}     //屏蔽F11      
     if   (event.ctrlKey   &&   event.keyCode==78)   event.returnValue=false;       //屏蔽   Ctrl+n      
     if   (event.shiftKey   &&   event.keyCode==121)event.returnValue=false;     //屏蔽   shift+F10      
     if   (window.event.srcElement.tagName   ==   "A"   &&   window.event.shiftKey)        
             window.event.returnValue   =   false;                           //屏蔽   shift   加鼠标左键新开一网页      
     if   ((window.event.altKey)&&(window.event.keyCode==115))                           //屏蔽Alt+F4      
     {      
             window.showModelessDialog("about:blank","","dialogWidth:1px;dialogheight:1px");      
             return   false;      
     }      
 }      
 </script>      
 屏蔽鼠标右键、Ctrl+N、Shift+F10、Alt+F4、F11、F5刷新、退格键      
 </body>      
 </html>    


完全去除页面滚动条的方法 不指定

jed , 2008-4-8 09:50 , 代码编程 , 评论(1) , 阅读(4054) , Via 本站原创
今天做站的时候客户要求实现网站全屏,使用JavaScript:


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<script language="javascript">
  <!--
function fullscreen(){
window.open("/index.htm","","scrollbars=0,toolbar=0,location=0,fullscreen=1,directories=0,status=0,menubar=0,resizable=0");
}
  // -->
</script>
</head>
<body>
<h3 align="center"><a href="j avascript:fullscreen()">打开</a></h3>
</body>
</html>

Tags: ,
先前整理过一个时间控件,但是不能精确到时分秒。现在这个能够精确到时分秒,十分好用,可以试试。

JS文件名字为:calendar.js

代码为:

//  主调用函数是 setday(this,[object])和setday(this),[object]是控件输出的控件名,举两个例子:
//  一、<input name=txt><input type=button value=setday onclick="setday(this,document.all.txt)">
//  二、<input onfocus="setday(this)">

var bMoveable=true;
var strFrame;        

document.writeln('<iframe id=endDateLayer frameborder=0 width=162 height=211 style="position: absolute;  z-index: 9998; display: none"></iframe>');
strFrame='<style>';
strFrame+='INPUT.button{BORDER-RIGHT: #63A3E9 1px solid;BORDER-TOP: #63A3E9 1px solid;BORDER-LEFT: #63A3E9 1px solid;';
strFrame+='BORDER-BOTTOM: #63A3E9 1px solid;BACKGROUND-COLOR: #63A3E9;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.endDateLayer.style;';
strFrame+='        DateLayer.posLeft += window.event.clientX-datelayerx;';
strFrame+='        DateLayer.posTop += window.event.clientY-datelayery;}}';
strFrame+='function DragStart()';
strFrame+='{var DateLayer=parent.document.all.endDateLayer.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">';
strFrame+='<span id=tmpSelectYearLayer  style="z-index: 9999;position: absolute;top: 3; left: 19;display: none"></span>';
strFrame+='<span id=tmpSelectMonthLayer  style="z-index: 9999;position: absolute;top: 3; left: 78;display: none"></span>';
strFrame+='<span id=tmpSelectHourLayer  style="z-index: 9999;position: absolute;top: 188; left: 35px;display: none"></span>';
strFrame+='<span id=tmpSelectMinuteLayer style="z-index:9999;position:absolute;top: 188; left: 77px;display: none"></span>';
strFrame+='<span id=tmpSelectSecondLayer style="z-index:9999;position:absolute;top: 188; left: 119px;display: none"></span>';
strFrame+='<table border=1 cellspacing=0 cellpadding=0 width=142 height=160 bordercolor=#63A3E9 bgcolor=#63A3E9 >';
strFrame+='    <tr><td width=142 height=23  bgcolor=#FFFFFF>';
strFrame+='        <table border=0 cellspacing=1 cellpadding=0 width=158  height=23>';
strFrame+='            <tr align=center >';
strFrame+='                <td width=16 align=center bgcolor=#63A3E9 style="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+='                       onclick="parent.meizzPrevM()" title="向前翻 1 月" ><b ><</b></td>';
strFrame+='                   <td width=60 align="center" bgcolor="#63A3E9"  style="font-size:12px;cursor:hand" ';
strFrame+='                       onmouseover="style.backgroundColor=\'#aaccf3\'"';
strFrame+='                       onmouseout="style.backgroundColor=\'#63A3E9\'" ';
strFrame+='                       onclick="parent.tmpSelectYearInnerHTML(this.innerText.substring(0,4))" ';
strFrame+='                       title="点击这里选择年份"><span  id=meizzYearHead></span></td>';
strFrame+='                   <td width=48 align="center" style="font-size:12px;font-color: #ffffff;cursor:hand" ';
strFrame+='                       bgcolor="#63A3E9" onmouseover="style.backgroundColor=\'#aaccf3\'" ';
strFrame+='                       onmouseout="style.backgroundColor=\'#63A3E9\'" ';
strFrame+='                       onclick="parent.tmpSelectMonthInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
strFrame+='                       title="点击这里选择月份"><span id=meizzMonthHead ></span></td>';
strFrame+='                   <td width=16 bgcolor=#63A3E9 align=center style="font-size:12px;cursor: hand;color: #ffffff" ';
strFrame+='                       onclick="parent.meizzNextM()" title="向后翻 1 月" ><b >></b></td>';
strFrame+='               </tr>';
strFrame+='           </table></td></tr>';
strFrame+='       <tr><td width=142 height=18 >';
strFrame+='           <table border=0 cellspacing=0 cellpadding=2 bgcolor=#63A3E9 ' + (bMoveable? 'onmousedown="DragStart()" onmouseup="DragEnd()"':'');
strFrame+='                BORDERCOLORLIGHT=#63A3E9 BORDERCOLORDARK=#FFFFFF width=140 height=20  style="cursor:' + (bMoveable ? 'move':'default') + '">';
strFrame+='       <tr><td style="font-size:12px;color:#ffffff" width=20> 日</td>';
strFrame+='<td style="font-size:12px;color:#FFFFFF" > 一</td><td style="font-size:12px;color:#FFFFFF"> 二</td>';
strFrame+='<td style="font-size:12px;color:#FFFFFF" > 三</td><td style="font-size:12px;color:#FFFFFF" > 四</td>';
strFrame+='<td style="font-size:12px;color:#FFFFFF" > 五</td><td style="font-size:12px;color:#FFFFFF" > 六</td></tr>';
strFrame+='</table></td></tr>';
strFrame+='  <tr ><td width=142 height=120 >';
strFrame+='    <table border=1 cellspacing=2 cellpadding=2 BORDERCOLORLIGHT=#63A3E9 BORDERCOLORDARK=#FFFFFF bgcolor=#fff8ec width=140 height=120 >';
var n=0; for (j=0;j<5;j++){ strFrame+= ' <tr align=center >'; for (i=0;i<7;i++){
strFrame+='<td width=20 height=20 id=meizzDay'+n+' style="font-size:12px" onclick=parent.meizzDayClick(this.innerText,0)></td>';n++;}
strFrame+='</tr>';}
strFrame+='      <tr align=center >';
for (i=35;i<37;i++)strFrame+='<td width=20 height=20 id=meizzDay'+i+' style="font-size:12px"  onclick="parent.meizzDayClick(this.innerText,0)"></td>';
strFrame+='        <td colspan=5 align=right style="color:#1478eb"><span onclick="parent.setNull()" style="font-size:12px;cursor: hand"';
strFrame+='         onmouseover="style.color=\'#ff0000\'" onmouseout="style.color=\'#1478eb\'" title="将日期置空">置空</span>  <span onclick="parent.meizzToday()" style="font-size:12px;cursor: hand"';
strFrame+='         onmouseover="style.color=\'#ff0000\'" onmouseout="style.color=\'#1478eb\'" title="当前日期时间">当前</span>  <span style="cursor:hand" id=evaAllOK onmouseover="style.color=\'#ff0000\'" onmouseout="style.color=\'#1478eb\'"  onclick="parent.closeLayer()" title="关闭日历">关闭 </span></td></tr>';
strFrame+='    </table></td></tr><tr ><td >';
strFrame+='        <table border=0 cellspacing=1 cellpadding=0 width=100%  bgcolor=#FFFFFF height=22 >';
strFrame+='          <tr bgcolor="#63A3E9"><td id=bUseTimeLayer width=30  style="cursor:hand" title="点击这里启用/禁用时间"';
strFrame+='                onmouseover="style.backgroundColor=\'#aaccf3\'" align=center onmouseout="style.backgroundColor=\'#63A3E9\'"';
strFrame+='                 onclick="parent.UseTime(this)">';
strFrame+=' <span></span></td>';
strFrame+='             <td style="cursor:hand" onclick="parent.tmpSelectHourInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
strFrame+=' onmouseover="style.backgroundColor=\'#aaccf3\'" onmouseout="style.backgroundColor=\'#63A3E9\'"';
strFrame+=' title="点击这里选择时间" align=center width=42>' ;
strFrame+='                    <span id=meizzHourHead></span></td>';
strFrame+='             <td style="cursor:hand" onclick="parent.tmpSelectMinuteInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
strFrame+=' onmouseover="style.backgroundColor=\'#aaccf3\'" onmouseout="style.backgroundColor=\'#63A3E9\'"';
strFrame+=' title="点击这里选择时间" align=center width=42>' ;
strFrame+='                    <span id=meizzMinuteHead></span></td>';
strFrame+='             <td style="cursor:hand" onclick="parent.tmpSelectSecondInnerHTML(this.innerText.length==3?this.innerText.substring(0,1):this.innerText.substring(0,2))"';
strFrame+=' onmouseover="style.backgroundColor=\'#aaccf3\'" onmouseout="style.backgroundColor=\'#63A3E9\'"';
strFrame+=' title="点击这里选择时间" align=center width=42>' ;
strFrame+='                    <span id=meizzSecondHead></span></td>';
strFrame+='             </tr></table></td></tr></table></div>';

window.frames.endDateLayer.document.writeln(strFrame);
window.frames.endDateLayer.document.close();        //解决ie进度条不结束的问题


//==================================================== WEB 页面显示部分 ======================================================
var outObject;
var outButton;        //点击的按钮

var outDate="";        //存放对象的日期
var bUseTime=false;        //是否使用时间
var odatelayer=window.frames.endDateLayer.document.all;        //存放日历对象
var odatelayer=window.endDateLayer.document.all;
//odatelayer.bUseTimeLayer.innerText="NO";
bImgSwitch();
odatelayer.bUseTimeLayer.innerHTML=bImg;

function setday(tt,obj) //主调函数
{
   if (arguments.length > 2){alert("对不起!传入本控件的参数太多!");return;}
   if (arguments.length == 0){alert("对不起!您没有传回本控件任何参数!");return;}
   var dads = document.all.endDateLayer.style;
   var th = tt;
   var ttop = tt.offsetTop;    //TT控件的定位点高

   var thei = tt.clientHeight;    //TT控件本身的高
   var tleft = tt.offsetLeft;    //TT控件的定位点宽

   var ttyp = 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;    //设定外部点击的按钮

   //根据当前输入框的日期显示日历的年月
   var reg = /^(\d+)-(\d{1,2})-(\d{1,2})/;        //不含时间
   var r = outObject.value.match(reg);
   if(r!=null){
       r[2]=r[2]-1;
       var d=new Date(r[1],r[2],r[3]);
       if(d.getFullYear()==r[1] && d.getMonth()==r[2] && d.getDate()==r[3])
       {
           outDate=d;
           parent.meizzTheYear = r[1];
           parent.meizzTheMonth = r[2];
           parent.meizzTheDate = r[3];
       }
       else
       {
           outDate="";
       }
       meizzSetDay(r[1],r[2]+1);
   }
   else
   {
       outDate="";
       meizzSetDay(new Date().getFullYear(), new Date().getMonth() + 1);
   }
   dads.display = '';

   //判断初始化时是否使用时间,非严格验证
   //if (outObject.value.length>10)
   //{
       bUseTime=true;
       bImgSwitch();
       odatelayer.bUseTimeLayer.innerHTML=bImg;
       meizzWriteHead(meizzTheYear,meizzTheMonth);
   //}
   //else
   //{
   //    bUseTime=false;
   //    bImgSwitch();
   //    odatelayer.bUseTimeLayer.innerHTML=bImg;
   //    meizzWriteHead(meizzTheYear,meizzTheMonth);
   //}

   try
   {
       event.returnValue=false;
   }
   catch (e)
   {
       //此处排除错误,错误原因暂未找到。
   }
}

var MonHead = new Array(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;

var meizzTheYear=new Date().getFullYear(); //定义年的变量的初始值

var meizzTheMonth=new Date().getMonth()+1; //定义月的变量的初始值

var meizzTheDate=new Date().getDate();    //定义日的变量的初始值    
var meizzTheHour=new Date().getHours();    //定义小时变量的初始值

var meizzTheMinute=new Date().getMinutes();//定义分钟变量的初始值
var meizzTheSecond=new Date().getSeconds();//定义秒变量的初始值

var meizzWDay=new Array(37);    //定义写日期的数组

function document.onclick() //任意点击时关闭该控件    //ie6的情况可以由下面的切换焦点处理代替
{
   with(window.event)
   {
       if (srcElement != outObject && srcElement != outButton)
       closeLayer();
   }
}

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

function meizzWriteHead(yy,mm,ss)    //往 head 中写入当前的年与月
{
   odatelayer.meizzYearHead.innerText    = yy + " 年";
   odatelayer.meizzMonthHead.innerText    = format(mm) + " 月";
   //插入当前小时、分
   odatelayer.meizzHourHead.innerText=bUseTime?(meizzTheHour+" 时"):"";
   odatelayer.meizzMinuteHead.innerText=bUseTime?(meizzTheMinute+" 分"):"";
   odatelayer.meizzSecondHead.innerText=bUseTime?(meizzTheSecond+" 秒"):"";
}

function tmpSelectYearInnerHTML(strYear) //年份的下拉框
{
   if (strYear.match(/\D/)!=null){alert("年份输入参数不是数字!");return;}
   var m = (strYear) ? strYear : new Date().getFullYear();
   if (m < 1000 || m > 9999) {alert("年份值不在 1000 到 9999 之间!");return;}
   var n = m - 50;
   if (n < 1000) n = 1000;
   if (n + 101 > 9999) n = 9974;
   var s = " <select name=tmpSelectYear style='font-size: 12px' "
   s += "onblur='document.all.tmpSelectYearLayer.style.display=\"none\"' "
   s += "onchange='document.all.tmpSelectYearLayer.style.display=\"none\";"
   s += "parent.meizzTheYear = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n";
   var selectInnerHTML = s;
   for (var i = n; i < n + 101; i++)
   {
       if (i == m) { selectInnerHTML += "<option value='" + i + "' selected>" + i + "年" + "</option>\r\n"; }
       else { selectInnerHTML += "<option value='" + i + "'>" + i + "年" + "</option>\r\n"; }
   }
   selectInnerHTML += "</select>";
   odatelayer.tmpSelectYearLayer.style.display="";
   odatelayer.tmpSelectYearLayer.innerHTML = selectInnerHTML;
   odatelayer.tmpSelectYear.focus();
}

function tmpSelectMonthInnerHTML(strMonth) //月份的下拉框
{
   if (strMonth.match(/\D/)!=null){alert("月份输入参数不是数字!");return;}
   var m = (strMonth) ? strMonth : new Date().getMonth() + 1;
   var s = "   <select name=tmpSelectMonth style='font-size: 12px' "
   s += "onblur='document.all.tmpSelectMonthLayer.style.display=\"none\"' "
   s += "onchange='document.all.tmpSelectMonthLayer.style.display=\"none\";"
   s += "parent.meizzTheMonth = this.value; parent.meizzSetDay(parent.meizzTheYear,parent.meizzTheMonth)'>\r\n";
   var selectInnerHTML = s;
   for (var i = 1; i < 13; i++)
   {
       if (i == m) { selectInnerHTML += "<option value='"+i+"' selected>"+i+"月"+"</option>\r\n"; }
       else { selectInnerHTML += "<option value='"+i+"'>"+i+"月"+"</option>\r\n"; }
   }
   selectInnerHTML += "</select>";
   odatelayer.tmpSelectMonthLayer.style.display="";
   odatelayer.tmpSelectMonthLayer.innerHTML = selectInnerHTML;
   odatelayer.tmpSelectMonth.focus();
}

/**//***** 增加 小时、分钟 ***/
function tmpSelectHourInnerHTML(strHour) //小时的下拉框
{
   if (!bUseTime){return;}

   if (strHour.match(/\D/)!=null){alert("小时输入参数不是数字!");return;}
   var m = (strHour) ? strHour : new Date().getHours();
   var s = "<select name=tmpSelectHour style='font-size: 12px' "
   s += "onblur='document.all.tmpSelectHourLayer.style.display=\"none\"' "
   s += "onchange='document.all.tmpSelectHourLayer.style.display=\"none\";"
   s += "parent.meizzTheHour = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'>\r\n";
   var selectInnerHTML = s;
   for (var i = 0; i < 24; i++)
   {
       if (i == m) { selectInnerHTML += "<option value='"+i+"' selected>"+i+"</option>\r\n"; }
       else { selectInnerHTML += "<option value='"+i+"'>"+i+"</option>\r\n"; }
   }
   selectInnerHTML += "</select>";
   odatelayer.tmpSelectHourLayer.style.display="";
   odatelayer.tmpSelectHourLayer.innerHTML = selectInnerHTML;
   odatelayer.tmpSelectHour.focus();
}

function tmpSelectMinuteInnerHTML(strMinute) //分钟的下拉框
{
   if (!bUseTime){return;}

   if (strMinute.match(/\D/)!=null){alert("分钟输入参数不是数字!");return;}
   var m = (strMinute) ? strMinute : new Date().getMinutes();
   var s = "<select name=tmpSelectMinute style='font-size: 12px' "
   s += "onblur='document.all.tmpSelectMinuteLayer.style.display=\"none\"' "
   s += "onchange='document.all.tmpSelectMinuteLayer.style.display=\"none\";"
   s += "parent.meizzTheMinute = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute);'>\r\n";
   var selectInnerHTML = s;
   for (var i = 0; i < 60; i++)
   {
       if (i == m) { selectInnerHTML += "<option value='"+i+"' selected>"+i+"</option>\r\n"; }
       else { selectInnerHTML += "<option value='"+i+"'>"+i+"</option>\r\n"; }
   }
   selectInnerHTML += "</select>";
   odatelayer.tmpSelectMinuteLayer.style.display="";
   odatelayer.tmpSelectMinuteLayer.innerHTML = selectInnerHTML;
   odatelayer.tmpSelectMinute.focus();
}

function tmpSelectSecondInnerHTML(strSecond) //秒的下拉框
{
   if (!bUseTime){return;}

   if (strSecond.match(/\D/)!=null){alert("分钟输入参数不是数字!");return;}
   var m = (strSecond) ? strSecond : new Date().getMinutes();
   var s = "<select name=tmpSelectSecond style='font-size: 12px' "
   s += "onblur='document.all.tmpSelectSecondLayer.style.display=\"none\"' "
   s += "onchange='document.all.tmpSelectSecondLayer.style.display=\"none\";"
   s += "parent.meizzTheSecond = this.value; parent.evaSetTime(parent.meizzTheHour,parent.meizzTheMinute,parent.meizzTheSecond);'>\r\n";
   var selectInnerHTML = s;
   for (var i = 0; i < 60; i++)
   {
       if (i == m) { selectInnerHTML += "<option value='"+i+"' selected>"+i+"</option>\r\n"; }
       else { selectInnerHTML += "<option value='"+i+"'>"+i+"</option>\r\n"; }
   }
   selectInnerHTML += "</select>";
   odatelayer.tmpSelectSecondLayer.style.display="";
   odatelayer.tmpSelectSecondLayer.innerHTML = selectInnerHTML;
   odatelayer.tmpSelectSecond.focus();
}

function closeLayer()    //这个层的关闭
{
   var o = document.getElementById("endDateLayer");
   if (o != null)
   {
       o.style.display="none";
   }
}

function showLayer()    //这个层的关闭
{
   document.all.endDateLayer.style.display="";
}

function IsPinYear(year)    //判断是否闰平年
{
   if (0==year%4&&((year%100!=0)||(year%400==0))) return true;else return false;
}

function GetMonthCount(year,month)    //闰年二月为29天
{
   var c=MonHead[month-1];if((month==2)&&IsPinYear(year)) c++;return c;
}

function GetDOW(day,month,year)    //求某天的星期几
{
   var dt=new Date(year,month-1,day).getDay()/7; return dt;
}

function meizzPrevY()    //往前翻 Year
{
   if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear--;}
   else{alert("年份超出范围(1000-9999)!");}
   meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextY()    //往后翻 Year
{
   if(meizzTheYear > 999 && meizzTheYear <10000){meizzTheYear++;}
   else{alert("年份超出范围(1000-9999)!");}
   meizzSetDay(meizzTheYear,meizzTheMonth);
}
function setNull()
{
   outObject.value = '';
   closeLayer();
}
function meizzToday()    //Today Button
{
   parent.meizzTheYear        = new Date().getFullYear();
   parent.meizzTheMonth    = new Date().getMonth()+1;
   parent.meizzTheDate        = new Date().getDate();
   parent.meizzTheHour        = new Date().getHours();
   parent.meizzTheMinute    = new Date().getMinutes();
   parent.meizzTheSecond    = new Date().getSeconds();
   var meizzTheSecond        = new Date().getSeconds();

   if (meizzTheMonth<10 && meizzTheMonth.length<2)    //格式化成两位数字
   {
       parent.meizzTheMonth="0"+parent.meizzTheMonth;
   }
   if (parent.meizzTheDate<10 && parent.meizzTheDate.length<2)    //格式化成两位数字
   {
       parent.meizzTheDate="0"+parent.meizzTheDate;
   }
   //meizzSetDay(meizzTheYear,meizzTheMonth);
   if(outObject)
   {
       if (bUseTime)
       {
           outObject.value= parent.meizzTheYear + "-" + format( parent.meizzTheMonth) + "-" +
                           format(parent.meizzTheDate) + " " + format(parent.meizzTheHour) + ":" +
                           format(parent.meizzTheMinute) + ":" + format(parent.meizzTheSecond);
                           //注:在这里你可以输出改成你想要的格式
       }
       else
       {
           outObject.value= parent.meizzTheYear + "-" + format( parent.meizzTheMonth) + "-" +
                           format(parent.meizzTheDate); //注:在这里你可以输出改成你想要的格式
       }
   }
   closeLayer();
}
function meizzPrevM()    //往前翻月份
{
   if(meizzTheMonth>1){meizzTheMonth--}else{meizzTheYear--;meizzTheMonth=12;}
   meizzSetDay(meizzTheYear,meizzTheMonth);
}
function meizzNextM()    //往后翻月份
{
   if(meizzTheMonth==12){meizzTheYear++;meizzTheMonth=1}else{meizzTheMonth++}
   meizzSetDay(meizzTheYear,meizzTheMonth);
}

// TODO: 整理代码
function meizzSetDay(yy,mm)    //主要的写程序**********
{
   meizzWriteHead(yy,mm);
   //设置当前年月的公共变量为传入值

   meizzTheYear=yy;
   meizzTheMonth=mm;

   for (var i = 0; i < 37; i++){meizzWDay[i]=""};    //将显示框的内容全部清空

   var day1 = 1,day2=1,firstday = new Date(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<37;i++) { meizzWDay[i]=day2;day2++; }
   for (i = 0; i < 37; i++)
   {
       var da = eval("odatelayer.meizzDay"+i)    //书写新的一个月的日期星期排列

   if (meizzWDay[i]!="")
   {
       //初始化边框
       da.borderColorLight="#63A3E9";
       da.borderColorDark="#63A3E9";
       da.style.color="#1478eb";
       if(i<firstday)        //上个月的部分
       {
           da.innerHTML="<b><font color=#BCBABC>" + 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) == new Date().getFullYear() &&
                   (mm==1?12:mm-1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
                    "#5CEFA0":"#f5f5f5";
           else
           {
               da.style.backgroundColor =((mm==1?yy-1:yy)==outDate.getFullYear() && (mm==1?12:mm-1)== outDate.getMonth() + 1 &&
               meizzWDay[i]==outDate.getDate())? "#84C1FF" :
               (((mm==1?yy-1:yy) == new Date().getFullYear() && (mm==1?12:mm-1) == new Date().getMonth()+1 &&
               meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5");
               //将选中的日期显示为凹下去

               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="#63A3E9";
               }
           }
       }
       else if (i>=firstday+GetMonthCount(yy,mm))        //下个月的部分
       {
           da.innerHTML="<b><font color=#BCBABC>" + 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) == new Date().getFullYear() &&
                   (mm==12?1:mm+1) == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate()) ?
                    "#5CEFA0":"#f5f5f5";
           else
           {
               da.style.backgroundColor =((mm==12?yy+1:yy)==outDate.getFullYear() && (mm==12?1:mm+1)== outDate.getMonth() + 1 &&
               meizzWDay[i]==outDate.getDate())? "#84C1FF" :
               (((mm==12?yy+1:yy) == new Date().getFullYear() && (mm==12?1:mm+1) == new Date().getMonth()+1 &&
               meizzWDay[i] == new Date().getDate()) ? "#5CEFA0":"#f5f5f5");
               //将选中的日期显示为凹下去

               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="#63A3E9";
               }
           }
       }
       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 == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
                   "#5CEFA0":"#f5f5f5";
           else
           {
               da.style.backgroundColor =(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())?
                   "#84C1FF":((yy == new Date().getFullYear() && mm == new Date().getMonth()+1 && meizzWDay[i] == new Date().getDate())?
                   "#5CEFA0":"#f5f5f5");
               //将选中的日期显示为凹下去

               if(yy==outDate.getFullYear() && mm== outDate.getMonth() + 1 && meizzWDay[i]==outDate.getDate())
               {
                   da.borderColorLight="#FFFFFF";
                   da.borderColorDark="#63A3E9";
               }
           }
       }
               da.style.cursor="hand"
           }
       else { da.innerHTML="";da.style.backgroundColor="";da.style.cursor="default"; }
   }
}

function meizzDayClick(n,ex)    //点击显示框选取日期,主输入函数*************
{
   parent.meizzTheDate=n;
   var yy=meizzTheYear;
   var mm = parseInt(meizzTheMonth)+ex;    //ex表示偏移量,用于选择上个月份和下个月份的日期
   var hh=meizzTheHour;
   var mi=meizzTheMinute;
   var se=meizzTheSecond;
   //判断月份,并进行对应的处理

   if(mm<1){
       yy--;
       mm=12+mm;
   }
   else if(mm>12){
       yy++;
       mm=mm-12;
   }

   if (mm < 10)    {mm = "0" + mm;}
   if (hh<10)        {hh="0" + hh;}    //时
   if (mi<10)        {mi="0" + mi;}    //分
   if (se<10)        {se="0" + se;}    //秒

   if (outObject)
   {
       if (!n) {    //outObject.value="";
           return;}
       if ( n < 10){n = "0" + n;}

       WriteDateTo(yy,mm,n,hh,mi,se);

       closeLayer();
       if (bUseTime)
       {
           try
           {
               outButton.click();
           }
           catch (e)
           {
               setday(outObject);
           }
       }
   }
   else {closeLayer(); alert("您所要输出的控件对象并不存在!");}
}

function format(n)    //格式化数字为两位字符表示
{
   var m=new String();
   var tmp=new String(n);
   if (n<10 && tmp.length<2)
   {
       m="0"+n;
   }
   else
   {
       m=n;
   }
   return m;
}

function evaSetTime()        //设置用户选择的小时、分钟
{
   odatelayer.meizzHourHead.innerText=meizzTheHour+" 时";
   odatelayer.meizzMinuteHead.innerText=meizzTheMinute+" 分";
   odatelayer.meizzSecondHead.innerText=meizzTheSecond+" 秒";
   WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond)
}

function evaSetTimeNothing()    //设置时间控件为空
{
   odatelayer.meizzHourHead.innerText="";
   odatelayer.meizzMinuteHead.innerText="";
   odatelayer.meizzSecondHead.innerText="";
   WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond)
}

function evaSetTimeNow()    //设置时间控件为当前时间
{
   odatelayer.meizzHourHead.innerText=new Date().getHours()+" 时";
   odatelayer.meizzMinuteHead.innerText=new Date().getMinutes()+" 分";
   odatelayer.meizzSecondHead.innerText=new Date().getSeconds()+" 秒";
   meizzTheHour = new Date().getHours();
   meizzTheMinute = new Date().getMinutes();
   meizzTheSecond = new Date().getSeconds();
   WriteDateTo(meizzTheYear,meizzTheMonth,meizzTheDate,meizzTheHour,meizzTheMinute,meizzTheSecond)
}

function UseTime(ctl)
{
   bUseTime=!bUseTime;
   if (bUseTime)
   {
       bImgSwitch();
       ctl.innerHTML=bImg;
       evaSetTime();        //显示时间,用户原来选择的时间
       //evaSetTimeNow();    //显示当前时间
   }
   else
   {
       bImgSwitch();
       ctl.innerHTML=bImg;
       evaSetTimeNothing();
   }
}

function WriteDateTo(yy,mm,n,hh,mi,se)
{
   if (bUseTime)
   {
       outObject.value= yy + "-" + format(mm) + "-" + format(n) + " " + format(hh) + ":" + format(mi) + ":" + format(se); //注:在这里你可以输出改成你想要的格式
   }
   else
   {
       outObject.value= yy + "-" + format(mm) + "-" + format(n); //注:在这里你可以输出改成你想要的格式
   }
}

function bImgSwitch()
{
   if (bUseTime)
   {
       bImg="开启";
   }
   else
   {
       bImg="关闭";
   }
}



HTML中的使用代码:

<script type="text/javascript" language="javascript" src="calendar.js"></script>
<input id="aa" onfocus="setday(this)"   />  


dotnet中的使用:

<script type="text/javascript" language="javascript" src="calendar.js"></script>
<asp:TextBox ID="TextBox2" onfocus="setday(this)" runat="server"></asp:TextBox>  


代码下载:



此接口是支付宝即时到帐的接口,不是实物交易的接口。适用于在线充值,在线即时交易,在线购买点卡等等。

使用说明如下:
1.支付宝接口中需要修改参数的文件有 alipay_config.php 文件,index.php;买家付款成功后反馈的页面时 return_url(页面跳转),notify_url(后台通知);alipay_notify.php 和alipay_service.php 不用修改. alipay_config.php 文件中 $seller_email,$security_code,$partner 对应的分别是支付宝帐号,安全校验码和合作id ,怎么获取建  alipay_config.php 注释说明.
index.php 页面,需要传递参数到这个页面,需要传递的参数是 subject(商品名称),body(商品说明),out_trade_no(外部商家订单号.为了方便测试,我在index.php这个页面采用的是以日期的形式的数字字符串,这个订单号必须保证提交给支付宝的时候是唯一的,否则支付不了)

如果你网站是实物担保交易 service 的值为 trade_create_by_buyer,与之相对应的参数为 物流信息的这三个参数(logistics_fee,logistics_payment,logistics_type),如果是虚拟物品的,对应的参数的值为 create_digital_goods_trade_p. (logistics_fee,logistics_payment,logistics_type)

2.通知页面.
这个事例代码中,与通知相关的页面有 alipay_notify.php(不需要修改),retureturn.php(跳转页面)
notify_url.php(通知页面)

return_url  和 notify_url 的区别及其操作.

 买家付款成功后,如果接口中指定有return_url ,买家付完款后会跳到 return_url所在的页面,这个页面可以展示给客户看,这个页面只有付款成功才会跳转.

notify_url: 服务器后台通知,这个页面是程序后台运行的(买家和卖家都看不到),买家付完款后,支付宝会调用notify_url这个页面所在的页面并把相应的参数传递到这个页面,这个页面根据支付宝传递过来的参数修改网站订单的状态,更新完订单后需要在页面上打印出一个success 给支付宝,如果反馈给支付宝的不是success,支付宝会继续调用这个页面.

 流程:  买家付完款(trade_status=TRADE_FINISHED)--->支付宝通知notify_url--->如果反馈给支付宝的是success(表示成功,这个状态下不再反馈,如果不是继续通知,一般第一次发送和第二次发送的时间间隔是3分钟)
剩下的过程,卖家发货,买家确认收货,交易成功都是这个流程

具体程序见附件:
php即时到帐

支付宝网上快速付款 技术集成文档V1.35

经典又精彩的弹窗代码 不指定

jed , 2008-2-29 15:47 , 代码编程 , 评论(0) , 阅读(1709) , Via 本站原创

<SCRIPT>
var oPopup = window.createPopup();
var popTop=50;
function popmsg(msgstr){
var winstr="<table style=\"border: 1 solid  #FFA6CA\"  width=\"241\" height=\"172\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\"  background=\"http://www.blueidea.com/articleimg/2004/01/1576/04-s.jpg\" >";
winstr+="<tr><td height=\"30\"> </td></tr><tr><td align=\"center\"><table width=\"90%\" height=\"110\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
winstr+="<tr><td valign=\"top\" style=\"font-size:12px; color: red; face: Tahoma\">"+msgstr+"</td></tr></table></td></tr></table>";
oPopup.document.body.innerHTML = winstr;
popshow();
}
function popshow(){
window.status=popTop;
if(popTop>1720){
clearTimeout(mytime);
oPopup.hide();
return;
}else if(popTop>1520&&popTop<1720){
oPopup.show(screen.width-250,screen.height,241,1720-popTop);
}else if(popTop>1500&&popTop<1520){
oPopup.show(screen.width-250,screen.height+(popTop-1720),241,172);
}else if(popTop<180){
oPopup.show(screen.width-250,screen.height,241,popTop);
}else if(popTop<220){
oPopup.show(screen.width-250,screen.height-popTop,241,172);
}
popTop+=10;
var mytime=setTimeout("popshow();",50);
}
popmsg("    欢迎光临沧海一粟,更多精彩等着您。");
</SCRIPT>


这是只弹出一次的代码。下面的是无限循环弹出的代码,可以用在实时检测程序里面,与程序结合,等有新短消息,就运行代码,弹出窗口。
bin2hex() 2进制转成16进制

hex2bin() 16进制转换成2进制


如何让php自动运行?全解 不指定

jed , 2008-2-4 09:09 , 代码编程 , 评论(2) , 阅读(3451) , Via 本站原创
Discuz后台有个计划任务,可以使php自动运行。
DZ计划任务的机制是这样:
1.首先在到了触发计划任务的时间,有访问(会员,游客,搜索引擎的蜘蛛)然后触发该计划任务发生。(因为PHP是触发是语言,没有人去访问他,他什么也做不了。)
2. 计划任务执行.
3. 执行成功,返回执行成功的信息,更新到数据库中记录当前执行的时间,下一次需要执行的时间。

目前让php自动运行的的方法有以下几种方法:
1:在windows下用计划任务
  在linux下用crantab
缺点:必须具有服务器权限

2:用个某个网页隔一段时间去刷新,比如用js或者php程序来实现。
  缺点:必须用某个工具将该页开着。

3:在有用户访问的时候触发
   缺点:必须在用户访问的页面里包含触发程序。

AJAX应用之注册用户即时检测 不指定

jed , 2008-1-16 13:44 , 代码编程 , 评论(0) , 阅读(1603) , Via 本站原创
AJAX的无刷新机制使得在注册系统中对于注册名称的检测能即时显示。

常见的用户注册是用户输入用户名,后台程序检测数据库中用户名是否重复而做出注册的成功与失败之提示(当用户注册重名时将返回重新注册),或者稍微人性化一点就是在用户名文本框后添加一个检测按钮,让用户检测后再做注册。

以上操作,对于用户体验方面来说是比较“差劲”的,一个很好的用户体验就是:当用户输入完注册用户名后,Web系统应能即时检查并即时显示,并在检查和显示的同时不影响当前页面的操作。这也就是“异步获取数据”的要求,而这正是AJAX的强项

比如如下的示例就能展现AJAX的该功能:

http://www.cnbruce.com/test/ajax/t1.htm

当输入已经存在的用户名(如cnbruce、cnrose)时页面将显示重名不能注册(false),否则将显示可以注册(true),这为用户的注册提供了快速的参考,用户体验至上。

那么下面就来说说是如何来实现这样的功能的。

其实通过如上的t1.htm的源代码,各位就可以看到AJAX的精髓

首先是定义XMLHttp对象


var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
xmlHttp = new XMLHttpRequest();
}





关于这部分内容的说明请看:
http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=987

接着是自定义函数



function callServer() {
var u_name = document.getElementById("u_name").value;
if ((u_name == null) || (u_name == "")) return;
var url = "cu.asp?name=" + escape(u_name);
xmlHttp.open("GET", url, true);
xmlHttp.onreadystatechange = updatePage;
xmlHttp.send(null);
}




该函数的主要功能就是异步获得cu.asp的内容,在此前将先提取当前页表单元素“u_name”即用户名文本框zhogn 的值,通过cu.asp其后的参数及赋值而得到了不同的结果(true or false)。

那么这里要说的即是cu.asp,他的主要功能就是接受URL参数name的值做内容显示,该内容最终被t1.htm异步获取。




<!--cu.asp的源码示例-->

<!--#include file="conn.asp"-->
<%
name=request.querystring("name")
Set rs = Server.CreateObject ("ADODB.Recordset")
sql = "Select * from u_ser where u_name='"&name&"'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
   response.write("true")
else
   response.write("false")
end if
rs.close
set rs=nothing
call CloseDatabase
%>





如何将异步获取的信息显示在当前页呢



function updatePage() {
if (xmlHttp.readyState < 4) {
   test1.innerHTML="loading...";
}
if (xmlHttp.readyState == 4) {
var response = xmlHttp.responseText;
   test1.innerHTML=response;
}
}




其中xmlHttp.readyState中的readyState表示服务器在处理请求时的进展状况,其值分别有0-4,各有其说明情况,具体请参看:

http://www.cnbruce.com/blog/showlog.asp?cat_id=34&log_id=718

使用DHTML中的innerHTML可显示信息在定义的 是否能注册 上。

其余表单页面就不详叙了

打包文件下载(右键选择另存为,下载后修改文件后缀名为rar,解压打开):

http://www.cnbruce.com/test/ajax/ajax.htm

还记得几年前的那些讨厌的浏览器战争吗?没有一样东西在不同的浏览器上得到同样的结果。不管您是否相信,这些战争仍然在继续,虽然规模较小。但令人奇怪的是,XMLHttpRequest 成了这场战争的牺牲品之一。因此获得 XMLHttpRequest 对象可能需要采用不同的方法。下面我将详细地进行解释。

使用 Microsoft 浏览器

Microsoft 浏览器 Internet Explorer 使用 MSXML 解析器处理 XML。因此如果编写的 Ajax 应用程序要和 Internet Explorer 打交道,那么必须用一种特殊的方式创建对象。

但并不是这么简单。根据 Internet Explorer 中安装的 JavaScript 技术版本不同,MSXML 实际上有两种不同的版本,因此必须对这两种情况分别编写代码。请参阅如下代码,其中的代码在 Microsoft 浏览器上创建了一个 XMLHttpRequest。

Tags:
分页: 9/22 第一页 上页 4 5 6 7 8 9 10 11 12 13 下页 最后页 [ 显示模式: 摘要 | 列表 ]