<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Thinking

    快樂編程,開心生活
    posts - 21, comments - 27, trackbacks - 0, articles - -5
      BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

    CCP Review-Javascript

    Posted on 2007-11-27 23:41 lixw 閱讀(280) 評論(0)  編輯  收藏 所屬分類: Javascript
    CCP Review-Javascript
    1、對于div中的input標簽,如果div的style.display屬性為'none',那么調用input標簽的focus方法在IE6.0上會報錯,首先應該讓其display屬性為''或者'block'再調用;
    2、當HTML元素的name屬性唯一時可以利用document.getElementById()調用獲得這個元素;
    3、如果異步提交耗時較長,可在異步提交之前顯示等待提示,在回調函數中根據返回值更新提示;
    4、在JS中function也是可以作為變量的,所以我們可以在自己封裝的框架中預留回調函數供自定義使用,如下面的代碼:
     1 //common.js
     2 var callback = null;
     3 function commonUse(){
     4   
     5   if(typeof(callback) == "function"){
     6     callback();
     7   }
     8   
     9 }
    10 
    11 //self.js
    12 function selfUse(){
    13   
    14   callback = function(){
    15     //do something before
    16   }
    17   commonUse();
    18   
    19 }

    5、JS中可以使用正則表達式來校驗數字域、日期域和EMail等。代碼示例如下:
    校驗日期的例子:
     1     function isDate(date){
     2         //對日期格式進行驗證 要求為2000-2099年  格式為 yyyy-mm-dd 并且可以正常轉換成正確的日期
     3         var regex=/^(19|20)\d{2}-((0[1-9]{1})|(1[0-2]{1}))-((0[1-9]{1})|([1-2]{1}[0-9]{1})|(3[0-1]{1}))$/;
     4         
     5         if(!regex.test(date)){
     6             return false;
     7         }
     8         var arr_=date.split("-");
     9         var tmp = new Date(arr_[0], parseFloat(arr_[1])-1, parseFloat(arr_[2]));
    10         if(tmp.getFullYear()!=parseFloat(arr_[0]) 
    11             || tmp.getMonth()!=parseFloat(arr_[1])-1 
    12             || tmp.getDate()!=parseFloat(arr_[2])){
    13             return false;
    14         }
    15          
    16          return true;
    17     }
      這篇文章有詳細的說明:http://www.tkk7.com/byterat/archive/2006/12/20/89143.html
      這本電子書是講解正則表達式的:http://www.tkk7.com/Files/kawaii/RegularExpressions.zip 
    6、在JS編碼中,如果代碼量較大,要注意防止function名稱重復,包括直接在頁面上編寫的和引用外部JS文件的,不然會出現一些莫名奇妙的問題;
    7、注意JS代碼中的函數返回語句return的使用;
    8、盡量把JS代碼寫在外部公共的文件中,而在頁面中引入,好處有:a.函數復用;b.JS文件緩存;c.提供頁面解析速度。基于b,我們在修改JS代碼后,要看IE的設置是否將原先的JS文件緩存造成問題;
    9、對于同一個頁面的多個表單提交,我們可以在第一個表單中設置相應的隱藏域,在表單提交之前利用JS腳本把其他表單的數據設置到第一個表單的隱藏域中;
    10、對于異步校驗的文本框,我們一般設置觸發事件為onblur而不是onchange或者onpropertychange,以減少客戶端和服務器的交互次數,但應該注意如果這個文本框最初沒有獲得焦點,那么onblur就不會觸發,可以先調用以下onfocus,再調用onblur手動觸發;
    11、JS中不存在trim()函數,自定義如下:
     1 //JS去除首尾空格(同VBS的Trim)
     2     function trim(inputString) {   
     3         if (typeof inputString != "string") {
     4             return inputString; 
     5         }
     6         var retValue = inputString;
     7         var ch = retValue.substring(01);
     8         while (ch == " ") {
     9                //檢查字符串開始部分的空格
    10             retValue = retValue.substring(1, retValue.length);
    11             ch = retValue.substring(01);
    12         }
    13         ch = retValue.substring(retValue.length-1, retValue.length);
    14         while (ch == " ") {
    15             //檢查字符串結束部分的空格
    16             retValue = retValue.substring(0, retValue.length-1);
    17             ch = retValue.substring(retValue.length-1, retValue.length);
    18         }
    19         while (retValue.indexOf("  "!= -1) {
    20             //將文字中間多個相連的空格變為一個空格
    21             retValue = retValue.substring(0, retValue.indexOf("  ")) 
    22                 + retValue.substring(retValue.indexOf("  ")+1, retValue.length);
    23         }
    24         return retValue;
    25     }
    12、JS中顯示模式窗口,代碼如下:
     1 function showMyDialog(){
     2   var dialogProperty = 'dialogWidth:800px;dialogHeight:600px;status:no';
     3   var windowProperty = "height=800,width=800,status=no,toolbar=no,menubar=yes,location=yes,resizable=yes,scrollbars=yes";
     4 
     5   var url = "SomeAction.do?id="+id+"&flag=true";
     6   var returnVal = window.showModalDialog(url,"", dialogProperty);
     7   if(typeof(returnVal) == "undefined"){
     8     return;
     9   }
    10   if(returnVal !=  ""){
    11     //do something   
    12   }
    13 }
    14 
    在新打開的模式窗口中,我們通過window.returnValue設置返回值,然后在父頁面中我們通過returnVal可以拿到返回值。

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 国产白丝无码免费视频| a毛片久久免费观看| 国产免费不卡视频| 色拍自拍亚洲综合图区| 日韩精品无码专区免费播放| 亚洲AV成人精品网站在线播放| 成人电影在线免费观看| 久久夜色精品国产嚕嚕亚洲av| 国产免费无码一区二区| 亚洲最新视频在线观看| 亚洲成人在线免费观看| ass亚洲**毛茸茸pics| 精品剧情v国产在免费线观看 | 亚洲色图在线播放| **俄罗斯毛片免费| 亚洲国产精品综合久久网各| 免费在线看v网址| 亚洲av最新在线观看网址| 成人亚洲网站www在线观看| 亚洲精品偷拍视频免费观看| 亚洲国产成人精品不卡青青草原| 最近中文字幕免费完整| 亚洲精品蜜夜内射| 亚洲熟妇少妇任你躁在线观看无码| 成人影片一区免费观看| 亚洲福利一区二区精品秒拍| 午夜视频在线在免费| caoporm超免费公开视频| 亚洲网址在线观看| 永久在线毛片免费观看| 国产一级高青免费| 亚洲国产精品成人久久久| 国产在线观看免费视频播放器| 中文字幕不卡高清免费| 亚洲国语在线视频手机在线| 又大又硬又爽免费视频| 免费黄网站在线看| 亚洲av日韩av永久无码电影| 亚洲国产成人片在线观看| 最近的免费中文字幕视频| 国产福利电影一区二区三区,免费久久久久久久精 |