现在的位置: 首页 > 综合 > 正文

开发中遇到的脚本(js)收藏

2013年03月05日 ⁄ 综合 ⁄ 共 9450字 ⁄ 字号 评论关闭
获取yyyy-MM-dd日期格式

  1. <script language="javascript">
  2. //补0函数  
  3. function appendZero(s){
  4. return   ("00"+   s).substr((s+"").length);
  5. }     
  6.   var   d   =   new   Date();   
  7.   alert(d.getFullYear() +"-" +appendZero(d.getMonth() +1) + "-" + appendZero(d.getDate()));
  8. </script>
动态添加事件
  1. <script language="javascript">
  2. document.getElementById("img").attachEvent("onclick","响应事件");
  3. function 响应事件(){
  4.   //.....
  5. }
  6. //适用于IE,其它浏览器则用addEventListener
  7. </script>
金额大小写转换(js)
  1. <script language='javascript'>
  2. function jsRMBChinese(Rmb) {
  3.         //金额小写转在写
  4.             try
  5.             {
  6.                   var Rmbexp,Rmbda,Expda,Ntyp,Icnt,i,Trmb;
  7.                   RmbRmb=Rmb.toFixed(2);
  8.                   if (Number(Rmb)>999999999999.99) {
  9.                       return '数据溢出!';
  10.                   }
  11.                     Rmbexp = "分角元拾佰仟万拾佰仟亿拾佰仟";
  12.                     Rmbda = "零壹贰叁肆伍陆柒捌玖";
  13.                     Ntyp = 0;        
  14.                     Trmb = Rmb.replace(".","");
  15.                     
  16.                     if (Trmb.substr(0,1)=="-") {TrmbTrmb=Trmb.substr(1);Ntyp=1;}
  17.                     Expda = "";
  18.                     Icnt=Trmb.length;     
  19.  
  20.                     for (var i=0;i<Icnt;i++) {
  21.                          Expda = Rmbda.substr(Number(Trmb.substr(Icnt-i-1,1)), 1) + Rmbexp.substr(i,1) + Expda      
  22.                     }                    
  23.                     if (Ntyp==1) {Expda="负 " + Expda;} 

  24.                     return Expda;
  25.             }
  26.             catch(e) {return '转换失败!';}
  27.         }
  28. alert(jsRMBChinese(123456789.123));
  29. </script>


从父窗体打开一个窗口,在子窗口中要调用父窗口的东西,要先判断父窗体是否已关闭!
  1. function rsSeek(){
  2.     if(opener){
  3.         if(typeof(window.opener.document)=='unknown'||typeof(window.opener.document)=='undefined'){
  4.         //已关闭
  5.          }
  6.         else{
  7.             opener.MySeekOk();
  8.          }
  9.     }
  10. }

 

 

清除缓存:<META HTTP-EQUIV="pragma" CONTENT="no-cache">

 

屏蔽IE6.0 图片上自动出现的保存图标

<META HTTP-EQUIV="imagetoolbar" CONTENT="no">

 

 

判断对象是否存在

typeof(eval("document.all.[name]"))=="undefined"

 

创建xmlHttp对象

  1. function CreateXmlRequest( )
  2. {
  3.     
  4.   var xmlhttp_request = false;
  5.     try{
  6.       if( window.ActiveXObject ){
  7.         forvar i = 5; i; i-- ){
  8.           try{
  9.             if( i == 2 ){
  10.                 xmlhttp_request = new ActiveXObject("Microsoft.XMLHTTP" );
  11.             }
  12.             else{
  13.                 xmlhttp_request = new ActiveXObject( "Msxml2.XMLHTTP." + i + ".0" );
  14.                 xmlhttp_request.setRequestHeader("Content-Type","text/xml");
  15.                 xmlhttp_request.setRequestHeader("Content-Type","gb2312");
  16.             }
  17.             break;
  18.           }
  19.           catch(e){ 
  20.             xmlhttp_request = false;
  21.           }
  22.        }
  23.     
  24.      }
  25.      else if( window.XMLHttpRequest){
  26.         xmlhttp_request = new XMLHttpRequest();
  27.         if (xmlhttp_request.overrideMimeType){
  28.             xmlhttp_request.overrideMimeType('text/xml');
  29.         }
  30.        }   
  31.        }
  32.        catch(e){
  33.     xmlhttp_request = false;   
  34.        }
  35.     return xmlhttp_request ;
  36. }
  1. //计算总天数
  2. function getDayDiff(d1,d2){  
  3.       return  (d2.getTime()-d1.getTime())/(24*60*60*1000)  
  4. }  
  1. //判断日期合法
  2.     function My_CheckDate(str){
  3.         var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);
  4.         if (r==null) {return false;}
  5.         else {
  6.             var d = new Date(r[1],r[3]-1,r[4]);
  7.             return (d.getFullYear()==r[1] && (d.getMonth()+1)==r[3] && d.getDate()==r[4]);
  8.         }
  9.     }

 

键值:

27  :ESC

37  :LEFT

39  :Right

114:F3 (搜索)

116:F5 (刷新)

117:F6 (地址栏获取焦点)

122:F11(全屏)

  1. //屏蔽页面右键
  2. function document.body.oncontextmenu() { 
  3.     window.event.returnValue=false
  4. //屏蔽拖动
  5. function document.body.ondragstart() { 
  6.     return false
  7. }
  8. function document.body.onkeydown() { 
  9. mybody__KeyDown(); 
  10. if (event.altKey && (event.keyCode==37 || event.keyCode==39)) event.returnValue = false
  11. if (event.keyCode==27 || event.keyCode==8 && event.srcElement.type!='text') event.returnValue = false
  12. if (event.keyCode==114 || event.keyCode==116 || event.keyCode==117 || event.keyCode==122) {
  13.     event.keyCode = 0;event.returnValue = false;
  14. if (event.ctrlKey && (event.keyCode==82 || event.keyCode==78)) event.returnValue = false
  15.     if (event.altKey && event.keyCode==115) {
  16.     window.showModelessDialog('about:blank','','dialogWidth:1px;dialogheight:1px');
  17.     return false;
  18.     } 
  19. }
  20.  function mybody__KeyDown() { 
  21.     if (event.keyCode == 13 && event.srcElement.tabIndex > 0) event.keyCode = 9; //回车换TAB
  22.     var name = event.srcElement.name; 
  23.         //事件来源
  24.     if (event.srcElement.type == 'text') { 
  25.         if (name.indexOf(":") == -1 ) return
  26.         if (event.keyCode == 38) {            // UP(向上),行号减1
  27.             var intRow = parseInt(name.match(/:(/d+?)-/)[1]); //得到行号
  28.             if (intRow > 0) {
  29.                 var stringName = name.replace(intRow.toString(),(intRow-1).toString());
  30.                 Form1(stringName).focus();
  31.             } 
  32.         } 
  33.         if (event.keyCode == 40) {       // Down(向下)
  34.             var intRow = parseInt(name.match(/:(/d+?)-/)[1]); //获取当前行号
  35.             if (intRow < Form1.maxjls.value) { //小于最大记录数
  36.                 var stringName = name.replace(intRow.toString(),(intRow+1).toString()); //下行对象名
  37.                 if (TableDetail.rows(intRow+1).cells(0).childNodes[0].value.length==0) {//下一行格子有东西?
  38.                     TableDetail.rows(intRow+1).cells(0).childNodes[0].focus();  //格子里获取焦点
  39.                 } 
  40.                 else { 
  41.                     Form1(stringName).focus(); //单元格获得焦点
  42.                 } 
  43.             } else addRow(); //刚好最后一行,添加行
  44.         } 
  45.     } 
  46. //添加行
  47. function addRow(name) { 
  48.     var i = TableDetail.rows.length; 
  49.     var j = TableDetail.rows(0).cells.length;
  50.     var newRow = TableDetail.insertRow(-1); 
  51.         //添加一行
  52.     for (var k = 0; k < j; k++) {                     //循环每一格
  53.         var newCell = newRow.insertCell(k);  //添加列
  54.         //newCell.style = TableDetail.rows(0).cells(k).style; 
  55.         var s = TableDetail.rows(0).cells(k).children.length; //单元格子对象
  56.         if (s==0) continue
  57.         var strHtml = TableDetail.rows(0).cells(k).innerHTML; 
  58.         strHtml = strHtml.replace(':0-',':'+i.toString()+'-'); //替换名字:行数
  59.         newCell.innerHTML = strHtml; 
  60.         TableDetail.rows(i).cells(k).childNodes[0].innerText=""
  61.     } 
  62.     Form1.maxjls.value =i ; 
  63.     TableDetail.rows(i).cells(0).childNodes[0].focus();
  64. function CheckValue(name) { 
  65.     if (event.srcElement.name == name || event.srcElement.name.indexOf(name) == event.srcElement.name.length-name.length){ 
  66.     if (String.fromCharCode(event.keyCode).search(/^[0-9-.]$/) == -1) event.returnValue = false
  67.     } 
  68. function KeyDown(name,value) { 
  69.     if (event.keyCode == 123) MyDmxz(name,value); 

 

备注:

键值:

27: ESC(关闭)

38: UP (向上)

40: DOWN(向下)

9  : TAB   (Tab)

  1. //代码:
  2. function KeyDown(n){
  3.     if (event.keyCode==27) window.close();
  4.     if (event.keyCode==38)
  5.     {
  6.         pObj(document.activeElement,n)   //参数是当前活动的元素 
  7.             
  8.     }
  9.     if (event.keyCode==40)
  10.     {
  11.         
  12.     
  13.         if (n < Number(MyForm.row.value))
  14.         {
  15.             MyTable.rows(n).bgColor = "#ffffff";
  16.             MyTable.rows(n+1).bgColor = "#ffefd5";
  17.             event.keyCode = 9;
  18.         }
  19.     } 
  20.     if (event.keyCode==9 && !event.shiftKey)
  21.     {
  22.         if (n < Number(MyForm.row.value))
  23.         {
  24.             MyTable.rows(n).bgColor = "#ffffff";
  25.             MyTable.rows(n+1).bgColor = "#ffefd5";
  26.         }
  27.         else
  28.         {
  29.             MyTable.rows(n).bgColor = "#ffffff";
  30.             MyTable.rows(0).bgColor = "#ffefd5";
  31.         }
  32.     } 
  33.     if (event.shiftKey && event.keyCode==9)
  34.     {
  35.         if (n > 0)
  36.         {
  37.             MyTable.rows(n).bgColor = "#ffffff";
  38.             MyTable.rows(n-1).bgColor = "#ffefd5";
  39.         }
  40.         else
  41.         {
  42.             MyTable.rows(n).bgColor = "#ffffff";
  43.             MyTable.rows(Number(MyForm.row.value)).bgColor = "#ffefd5";
  44.         }
  45.     } 
  46. }
  47. //从左往右数 从0开始 每格索引加1,格内还有元素再加1
  48. function pObj(obj,n) 
  49.     var i=obj.sourceIndex; //获得索引 
  50.     if (n>0) {
  51.         MyTable.rows(n).bgColor = "#ffffff"
  52.         MyTable.rows(n-1).bgColor = "#ffefd5"
  53.         document.all(i-9).focus(); 
  54.     } 

三种日期的验证

  1. //2.1 短时间,形如 (13:04:06)
  2.       function isTime(str)
  3.       {
  4.         var a = str.match(/^(/d{1,2})(:)?(/d{1,2})/2(/d{1,2})$/);
  5.         if (a == null) {alert('输入的参数不是时间格式'); return false;}
  6.         if (a[1]>24 || a[3]>60 || a[4]>60)
  7.         {
  8.           alert("时间格式不对");
  9.           return false
  10.         }
  11.         return true;
  12.       }
  13. //2.2 短日期,形如 (2003-12-05)
  14.       function strDateTime(str)
  15.       {
  16.          var r = str.match(/^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2})$/);
  17.          if(r==null)return false;
  18.          var d= new Date(r[1], r[3]-1, r[4]);
  19.          return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]);
  20.       }
  21. //2.3 长时间,形如 (2003-12-05 13:04:06)
  22.       function strDateTime(str)
  23.       {
  24.         var reg = /^(/d{1,4})(-|//)(/d{1,2})/2(/d{1,2}) (/d{1,2}):(/d{1,2}):(/d{1,2})$/;
  25.         var r = str.match(reg);
  26.         if(r==null)return false;
  27.         var d= new Date(r[1], r[3]-1,r[4],r[5],r[6],r[7]);
  28.         return (d.getFullYear()==r[1]&&(d.getMonth()+1)==r[3]&&d.getDate()==r[4]&&d.getHours()==r[5]&&d.getMinutes()==r[6]&&d.getSeconds()==r[7]);
  29.       }

CollectGarbage();

//Javascript在IE下有一个隐藏的函数CollectGarbage();和JAVA语言类似,将引用设置成null,并不会释放内存,需要手动调用CollectGarbage();才会对内存进行释放.


  1.     //计算总天数
  2.     function getDayDiff(d1,d2){  
  3.         return  (d2.getTime()-d1.getTime())/(24*60*60*1000)  
  4.     } 
  1. //字符串连接处理
  2. array=new Array()
  3. array[0]="AAA"
  4. array[1]="BBB"
  5. array[2]="CCC"
  6. array[3]="DDD"
  7. str1=array.join()
  8. str2=array.join("|")
  9. document.write(str1+"<br>")
  10. document.write(str2)

toFixed(2):保留两位小数

验证中文字符

temp=sysname
temp=temp.replace(/[/u4e00-/u9fa5]/g, "** ")
if(temp.length   > 0&&temp.length> 100)
    {
      alert( "系统名称输入有误,最长不超过100个非中文字符! ");
      document.frm.sysname.focus();
      return   false;
    }

抱歉!评论已关闭.