//Description:¶¨Òå¿Í»§¶ËµÄJavaScipº¯Êý,±äÁ¿var baksss 
var bakcolor
var szTableHighBgColor="#F8FACD"
//¶¨Òå¶àÑ¡º¯Êý
 function ShowNormal(orow,cb,bk)
 {
  var obj=document.all(cb)
   
  if (obj!=null)
   if (obj.checked==true)
    {
      obj.checked=false
      orow.bgColor=bk
     } 
   else if (obj.checked==false)
    {
      obj.checked=true
      orow.bgColor=szTableHighBgColor
     }
   event.cancelBubble =true
 } function ShowMuSelected(obj,bk)
 {
   if (obj!=null)
    if (obj.parentElement!=null)
      {
       var t=new String(obj.parentElement.tagName)
       var p=obj.parentElement
        if(t.toUpperCase()=="TD")
          if (p.parentElement!=null)
            if (obj.checked==true)
             p.parentElement.bgColor=szTableHighBgColor
            else
             p.parentElement.bgColor=bk
  
       }
   event.cancelBubble =true } //²ÎÊýsss´«µÝ±íµÄÐжÔÏó,szTypeID´«µÝµ±Ç°½Úµãid
//bFirst±íʾÊÇ·ñ³õʼ»¯½¹µã
//oCurrParId ´æ´¢µ±Ç°¼Ç¼µÄ¸¸½Úµãfunction SetFocusIt(sss,szTypeID,bFirst,oCurrParId)
{
    if (bFirst!=0){
baksss.bgColor=bakcolor
    }    baksss=sss 
    bakcolor=sss.bgColor
    sss.bgColor=szTableHighBgColor
    oCurrParId.value=szTypeID
}function Check(lpszStr) //¼ì²é×Ö·û´®ÊÇ·ñÓÉÊýÖµ¹¹³É
 {
     var nLen=lpszStr.length
     for (var nLoop=0;nLoop<nLen;nLoop++)
        if ((lpszStr.charAt(nLoop)>='0') && (lpszStr.charAt(nLoop)<='9')) continue
        else break    if (nLoop>=nLen)
       return true 
    else
      return false 
 }function ValidatePageNum(nPageNo,nPageCount)
{
  if (!Check(nPageNo))
    {
     window.alert("&Icirc;&THORN;&ETH;§&micro;&Auml;&Ograve;&sup3;&Atilde;&aelig;!")
     return false
    }
 if ((parseInt(nPageNo)<1) || (parseInt(nPageNo)>parseInt(nPageCount)))
   {
     window.alert("&Icirc;&THORN;&ETH;§&micro;&Auml;&Ograve;&sup3;&Atilde;&aelig;!")
     return false
    }
 else 
    return true
}//&Eacute;&frac34;&sup3;&yacute;×&Ouml;·&ucirc;&acute;&reg;&Ouml;&ETH;&micro;&Auml;&iquest;&Otilde;&cedil;&ntilde;
function KillSpace(x){
while((x.length>0) && (x.charAt(0)==' '))
x = x.substring(1,x.length);
while((x.length>0) && (x.charAt(x.length-1)==' '))
x = x.substring(0,x.length-1);
return x;
}//&frac14;ì&sup2;é×&Ouml;·&ucirc;&acute;&reg;&Ecirc;&Ccedil;·&ntilde;&Ecirc;&Ccedil;&Ograve;&raquo;&cedil;&ouml;&ordm;&Iuml;·¨&micro;&Auml;&Egrave;&Otilde;&AElig;&Uacute;
function DateCheckString (szDate)
{
  var nLimite, szYear,szMonth,szDay
  var fcompart,scompart  
  szDate = KillSpace(szDate)
  
  if (szDate.length>10 || szDate.length<10) return false
  fcompart =szDate.indexOf("-")
  szYear = szDate.substring(0, fcompart)
  if (szYear.length != 4) return false
  if (!Check(szYear)) return false  if ((szYear-0)<1900 || (szYear-0)>2079) return false
  
  scompart = szDate.indexOf("-",fcompart+1)  
  szMonth = szDate.substring(fcompart+1,scompart)  if (szMonth.length>2) return false  if (!Check(szMonth))  return false
  if (szMonth.charAt(0)=="0")  szMonth=szMonth.substring(1,2)  if ((szMonth-0)<0 || (szMonth-0)>12) return false
  
  szDay = szDate.substring(scompart+1,szDate.length)
  if (szDay.length>2) return false
  if (! Check(szDay)) return false
  if (szDay.charAt(0)=="0") szDay=szDay.substring(1,2)
  if ((szDay-0)<1 || (szDay-0)>31)  return false
   
  switch(szMonth-0){
      case 1: nLimite = 31
              break
     case  3: nLimite = 31
              break
     case  4: nLimite = 30
              break
     case  5: nLimite = 31
              break
     case  6: nLimite = 30
              break
     case  7: nLimite = 31
              break
     case  8: nLimite = 31
              break
     case  9: nLimite = 30
               break
     case  10: nLimite = 31
               break
     case  11: nLimite = 30
               break
     case  12: nLimite = 31
               break
     case  2: if ((((szYear % 4) == 0 && (szYear % 100)!=0)) || 
                  (((szYear % 100) == 0 && (szYear % 400) == 0))) 
                       nLimite = 29
             else nLimite = 28
             break
               
     }                          
    if (szDay-0>nLimite) return false     
    return true
}

解决方案 »

  1.   

    //Description:定义客户端的JavaScip函数,变量var baksss 
    var bakcolor
    var szTableHighBgColor="#F8FACD"
    //定义多选函数
     function ShowNormal(orow,cb,bk)
     {
      var obj=document.all(cb)
       
      if (obj!=null)
       if (obj.checked==true)
        {
          obj.checked=false
          orow.bgColor=bk
         } 
       else if (obj.checked==false)
        {
          obj.checked=true
          orow.bgColor=szTableHighBgColor
         }
       event.cancelBubble =true
     } function ShowMuSelected(obj,bk)
     {
       if (obj!=null)
        if (obj.parentElement!=null)
          {
           var t=new String(obj.parentElement.tagName)
           var p=obj.parentElement
            if(t.toUpperCase()=="TD")
              if (p.parentElement!=null)
                if (obj.checked==true)
                 p.parentElement.bgColor=szTableHighBgColor
                else
                 p.parentElement.bgColor=bk
      
           }
       event.cancelBubble =true } //参数sss传递表的行对象,szTypeID传递当前节点id
    //bFirst表示是否初始化焦点
    //oCurrParId 存储当前记录的父节点function SetFocusIt(sss,szTypeID,bFirst,oCurrParId)
    {
        if (bFirst!=0){
    baksss.bgColor=bakcolor
        }    baksss=sss 
        bakcolor=sss.bgColor
        sss.bgColor=szTableHighBgColor
        oCurrParId.value=szTypeID
    }function Check(lpszStr) //检查字符串是否由数值构成
     {
         var nLen=lpszStr.length
         for (var nLoop=0;nLoop<nLen;nLoop++)
            if ((lpszStr.charAt(nLoop)>='0') && (lpszStr.charAt(nLoop)<='9')) continue
            else break    if (nLoop>=nLen)
           return true 
        else
          return false 
     }function ValidatePageNum(nPageNo,nPageCount)
    {
      if (!Check(nPageNo))
        {
         window.alert("无效的页面!")
         return false
        }
     if ((parseInt(nPageNo)<1) || (parseInt(nPageNo)>parseInt(nPageCount)))
       {
         window.alert("无效的页面!")
         return false
        }
     else 
        return true
    }//删除字符串中的空格
    function KillSpace(x){
    while((x.length>0) && (x.charAt(0)==' '))
    x = x.substring(1,x.length);
    while((x.length>0) && (x.charAt(x.length-1)==' '))
    x = x.substring(0,x.length-1);
    return x;
    }//检查字符串是否是一个合法的日期
    function DateCheckString (szDate)
    {
      var nLimite, szYear,szMonth,szDay
      var fcompart,scompart  
      szDate = KillSpace(szDate)
      
      if (szDate.length>10 || szDate.length<10) return false
      fcompart =szDate.indexOf("-")
      szYear = szDate.substring(0, fcompart)
      if (szYear.length != 4) return false
      if (!Check(szYear)) return false  if ((szYear-0)<1900 || (szYear-0)>2079) return false
      
      scompart = szDate.indexOf("-",fcompart+1)  
      szMonth = szDate.substring(fcompart+1,scompart)  if (szMonth.length>2) return false  if (!Check(szMonth))  return false
      if (szMonth.charAt(0)=="0")  szMonth=szMonth.substring(1,2)  if ((szMonth-0)<0 || (szMonth-0)>12) return false
      
      szDay = szDate.substring(scompart+1,szDate.length)
      if (szDay.length>2) return false
      if (! Check(szDay)) return false
      if (szDay.charAt(0)=="0") szDay=szDay.substring(1,2)
      if ((szDay-0)<1 || (szDay-0)>31)  return false
       
      switch(szMonth-0){
          case 1: nLimite = 31
                  break
         case  3: nLimite = 31
                  break
         case  4: nLimite = 30
                  break
         case  5: nLimite = 31
                  break
         case  6: nLimite = 30
                  break
         case  7: nLimite = 31
                  break
         case  8: nLimite = 31
                  break
         case  9: nLimite = 30
                   break
         case  10: nLimite = 31
                   break
         case  11: nLimite = 30
                   break
         case  12: nLimite = 31
                   break
         case  2: if ((((szYear % 4) == 0 && (szYear % 100)!=0)) || 
                      (((szYear % 100) == 0 && (szYear % 400) == 0))) 
                           nLimite = 29
                 else nLimite = 28
                 break
                   
         }                          
        if (szDay-0>nLimite) return false     
        return true
    }//检查字符串是否是有效的数值
    function IsNumeric(lpstr)
    {
     var s=KillSpace(lpstr)
     var nLen=s.length
       for (var nLoop=0;nLoop<nLen;nLoop++)
          if ((s.charAt(nLoop)>='0') && (s.charAt(nLoop)<='9')) continue
          else      
            if (s.charAt(nLoop)=='.') continue
      else 
        if(nLoop==0 && s.charAt(nLoop)=='-') continue
           else break
     
       if (nLoop>=nLen && nLen>0)
          return true 
       else
          return false 
      
    }//定义显示单据明细函数
    function DisplayAllVch(szBillId)
    {
      var re
      if (KillSpace(szBillId)!="")
      {
       re=showModalDialog("../DispVch/DisplayAllVch.asp?BillId="+szBillId,"","dialogWidth=500pt;dialogHeight=400pt;center:yes;status:no;help:no;scroll:no") 
       return true 
      }
      else
      return false
    }
      //定义客户端Cookie保存报表日期
    function getCookieVal (offset) {
    var endstr = document.cookie.indexOf (";", offset);
    if (endstr == -1)
    endstr = document.cookie.length;
    return unescape(document.cookie.substring(offset, endstr));
    }
    function GetCookie (name) {
    var arg = name + "=";
    var alen = arg.length;
    var clen = document.cookie.length;
    var i = 0;
    while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
    return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
    }
    return null;
    }  
    function SetCookie (name, value) {
    var argv = SetCookie.arguments;
    var argc = SetCookie.arguments.length;
    var expires = (argc > 2) ? argv[2] : null;
    var path = (argc > 3) ? argv[3] : null;
    var domain = (argc > 4) ? argv[4] : null;
    var secure = (argc > 5) ? argv[5] : false;
    document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
    }
    function UpdateCookieExpiresDate() {
    var expdate = new Date();
    var num;
    expdate.setTime(expdate.getTime() +  (24 * 60 * 60 * 1000 * 31)); 
    if(!(num = GetCookie("Version"))) 
    num = "1.0";
    SetCookie ("Version", num, expdate);
    }function DateRange()
    {
     var StartDate
     var EndDate
    }
    function GetDate(d)
    {
     var temp
     var cdate=GetCookie('StartDate')
     if(!cdate)
     {
      temp=new Date()
      temp=temp.getYear()+"-"+(temp.getMonth()+1)+"-"+temp.getDate()
     } 
    else
     temp=cdate
    d.StartDate=temp
     
    cdate=GetCookie('EndDate')
     if(!cdate)
     {
      temp=new Date()
      temp=temp.getYear()+"-"+(temp.getMonth()+1)+"-"+temp.getDate()
     } 
    else
     temp=cdate
    d.EndDate=temp}function SetDate(d)
    {
    var expdate = new Date()
    expdate.setTime(expdate.getTime() +  (24 * 60 * 60 * 1000 * 31))SetCookie('StartDate',d.StartDate,expdate)
    SetCookie('EndDate',d.EndDate,expdate)
    }
      

  2.   

    // 把字符串转化为URL标准
    function URLCode(szStr)
    {
    var iLen      // 字串长度
    var cChr      // 处理字符
    var iLoop     // 循环
    var szDec=""  // 目的字串iLen=szStr.length
    for (iLoop=0;iLoop<iLen;iLoop++)
    {
       cChr=szStr.charAt(iLoop)
       switch(cChr){
       case '&' : szDec+="~"
                  break
       case ' ' : szDec+="+"
                  break
       case "'" : szDec+="%27"
                  break
       case '%' : szDec+="%25"
                  break
       default : szDec+=cChr
                  break
       }
    }
    return szDec
    }
    // 过滤条件数据结构
    function FilterRange()
    {
     var szFilteID
     var szFilteFullName
     var szReSearth="No"
    }
    // 数值四舍五入
    function GetRound(nNum,pre)
    {
    //if IsNumeric(mNum)
    return Math.round((nNum*Math.pow(10,pre)))/(Math.pow(10,pre)) 
    //else
    // return 0
    }
    // GetOne的数据结构
    function GetOne()
    {
    var szDBName
    var szLike
    var Flag
    var szTypeID
    var szUserName
    var szFullName
    }
    // 
    function GetAllOrPart()
    {
      var szAllOrPart ;
    }//组号设置,删除
    function Team()
    {
    var TeamNo;
    var Type;
    }
    function SortField()

    var Field;
    }
    //发送数据
    //id:单据类型,headdata单据索引,detaildata单据明细,callback回调函数
    function PostData(ob,id,headdata,detaildata,callback)
    { if (ob==null || id==null || headdata==null || detaildata==null || callback==null ) return false;
    ob.close();
    ob.open("text/html; charset=gb2312"); switch(parseInt(id))
    {
       case 11://销售单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchSaleBill.asp'>");
      break;
       case 45://销售退货单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchSaleBack.asp'>");
      break;
       case 34://进货开单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchBuy.asp'>");
      break;
       case 6://进货退货
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchBuyBack.asp'>");
      break;
     case 4://销售收款
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchGathering.asp'>");
      break;
         case 66://进货付款
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchPayVch.asp'>");
      break;  case 17://同价调拨单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchAllotBill.asp'>");
      break;
     case 21://变价调拨单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchPriceAllotBill.asp'>");
      break;
     case 9://报损单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchLoseBill.asp'>");
      break;
     case 14://报益单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchOverFlowBill.asp'>");
      break;
     case 57://调价单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchAdPriceBill.asp'>");
      break;
         case 115://应收(付)增加(减少)
         case 116://应收(付)增加(减少)
         case 128://应收(付)增加(减少)
         case 129://应收(付)增加(减少)
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchAddEbt.asp'>");
      break;
     case 16://商品拆装单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchPacketBill.asp'>");
      break;
     case 36://一般费用单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchExpenseBill.asp'>");
      break;
     case 93://其他收入单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchIncomeBill.asp'>");
      break;
     case 77://转款单
      ob.writeln("<form name='Post_Form' method='post' action='j_PassVchMonChaBill.asp'>");
      break;
         default:
              alert("无效的单据类型!");
              return; }

       ob.writeln("<input type=text name=callback value='"+escape(callback)+"'>")
       ob.writeln(headdata);
       ob.writeln(detaildata);
       ob.writeln("</form>")
       ob.writeln("<script language='javascript' differ>document.Post_Form==null?alert('发生错误,不能更新数据!'):document.Post_Form.submit()</script>"); }
    //接收数据
    function GetData(ob,id,BillNumberID,parent)
    {
    if (ob==null || id==null) 
    {
      alert('参数错误!');  
      return false;
    }
    ob.close();
    ob.open("text/html; charset=gb2312");
    switch(parseInt(id))
    {
       case 11://销售单
       case 45://销售退货单
       case 34://进货单
       case 6://进货退货单   ob.writeln("<form name='Get_Form' method='post' action='../vch/js_SaleBillGetData.asp'>");
      break;   case 17://同价调拨单
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_AllotBillGetData.asp'>");
      break;
       case 21://变价调拨单
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_PriceAllotBillGetData.asp'>");
      break;
       case 9://报损单
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_LoseBillGetData.asp'>");
      break;
       case 14://报益单
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_OverFlowBillGetData.asp'>");
      break;
     case 57://调价单
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_AdPriceBillGetData.asp'>");
      break;
         case 4://销售收款
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_GatheringBillGetData.asp'>");
      break;
     case 66://进货付款
      ob.writeln("<form name='Get_Form' method='post' action='../vch/js_PayVchBillGetData.asp'>");
      break;
         case 115://应收(付)增加(减少)
         case 116://应收(付)增加(减少)
         case 128://应收(付)增加(减少)
         case 129://应收(付)增加(减少)
              ob.writeln("<form name='Get_Form' method='post' action='../vch/js_AddEbtGetData.asp'>");
      break;
     case 16://商品拆装单
          ob.writeln("<form name='Get_Form' method='post' action='../vch/js_PacketGetData.asp'>");
      break;
     case 36://一般费用单
          ob.writeln("<form name='Get_Form' method='post' action='../vch/js_ExpenseVchBillGetData.asp'>");
      break;
     case 93://其他收入单
          ob.writeln("<form name='Get_Form' method='post' action='../vch/js_IncomeVchBillGetData.asp'>");
      break;
     case 77://转款单
          ob.writeln("<form name='Get_Form' method='post' action='../vch/js_MonChaVchBillGetData.asp'>");
      break;
         default:
              alert("无效的单据类型!");
              return;
    }
       ob.writeln("<input type=hidden name=ID value='"+escape(id)+"'>")
       ob.writeln("<input type=hidden name=BillNumberID value='"+escape(BillNumberID)+"'>")
       ob.writeln("<input type=Hidden name=Parent value='"+escape(parent)+"'>")
       ob.writeln("</form>")
       ob.writeln("<script language='javascript' differ>document.Get_Form==null?alert('发生错误,不能得到数据!'):document.Get_Form.submit()</script>"); 
    }// 页面打印
    function MyWinPrn( )
    {
    if (window.print != null) 
    window.print() 
    else alert('你的机器没有安装打印机,或是打印机不可用')
    }
    // 获得本地的常量
    function GetLocalVal(szName)
    {
    var ob=top.LocalValue;
    if (ob==null){ob=parent.opener.top.LocalValue;};
    if (szName=="PartUpdate") return(ob.PartUpdate);
    if (szName=="Tax") return(ob.Tax);
    if (szName=="DiscountRate") return(ob.DiscountRate);
    if (szName=="GridType") return(ob.GridType);
    if (szName=="PUBLIC_USER_NAME") return(ob.FullName);
     
    if (szName=="FullName") return(ob.FullName);
    }
      

  3.   

    微软的script encode加密  网上对于它的解密程序多的是Script Encoder 下载地址:
    http://msdn.microsoft.com/scripting/vbscript/download/x86/sce10en.exe    SCRENC.EXE这是一个运行在DOS PROMAPT的命令工具,它使脚本设计者可以对最终的脚本进行编码,从而使 Web 主机和 Web 客户不能查看或修改它们的源代码。不过有一点需要注意的是加密后的程序要求用户的游览器必须使用Internet Explorer 5.0以上的版本。加完密后的脚本变成类似于如下的内容:   
      脚本加密程序只对脚本代码进行加密,文件的其他内容不动且以普通文本形式显示。要使用脚本加密程序,以通常方法对文本进行开发和调试,然后使用该实用程序对最终的脚本进行加密。 脚本加密程序在源代码中使用标记来标识加密开始的位置。
      对于 Visual Basic Scripting Edition (VBScript),如下示例显示了如何使用编码标记来显示普通文本的版权信息:
      示例
      如下是使用脚本加密程序的一个例子以及对其结果的简单解释:
       对输入文件 test.html 进行加密,生成输出文件 encode.html,使用: 
      screnc test.html encode.html
      对输入文件 test.htm 进行加密,并用编码后的输出文件覆盖输入文件,使用: 
      screnc /f test.htm
      对当前目录中的所有 .ASP 文件进行加密,并把编码后的输出文件放在c:\temp中,使用: 
      screnc *.asp c:\temp
      对当前目录中的所有 .ASP 文件进行加密,并把编码后的输出文件放在c:\temp中,使用: 
      screnc /e asp *.* c:\temp
      对输入文件 test.htm 进行加密,并生成输出文件 encode.htm,确保没有指定语言属性的脚本块使用 VBScript,使用: 
      screnc /l vbscript test.htm encode.htm
      对当前目录中的所有脚本小程序文件进行加密,并不经信息显示就用编码后的文件覆盖这些文件,使用: 
      screnc /s /f *.sct
      要点 :经过编码后,如果您改动加密后的文本,哪怕只改动一个字。脚本的完整性就会丢失,从而不能再使用。   在 JScript 中,加密标记如下:
      当脚本加密程序被调用时,在开始标记前,脚本块内的内容保持不变,而其他内容被加密。因此,如果开始标记被省略,则脚本编码块内的所有内容均被加密,但如果开始标记在脚本加密块的最后,则不对任何内容进行加密。
      在编码发生后。您应该知道 标记或 标记内包含有效的 HTML 和内嵌脚本块。使用该格式的应用程序包括 Microsoft? Internet Information Services (IIS)。识别文件扩展名有 .asp、.asa 和 .cdx。
      

  4.   

    问题是我用了很多关于微软script encode加密的解密方法都解不开?
      

  5.   

    To: JK_10000(JK)你好像生下就会走路:)