<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://m.tkk7.com/byterat/archive/2006/12/20/89143.html
      這本電子書是講解正則表達式的:http://m.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可以拿到返回值。

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


    網站導航:
     
    主站蜘蛛池模板: 一区二区三区福利视频免费观看| 亚洲中文字幕乱码一区| 国产特黄特色的大片观看免费视频| 日本视频免费在线| 亚洲爆乳无码专区www| 精品国产精品久久一区免费式| 色噜噜亚洲男人的天堂| 午夜免费福利网站| 午夜亚洲国产理论片二级港台二级| 成人av免费电影| 国产天堂亚洲国产碰碰| 日韩精品电影一区亚洲| a级毛片免费网站| 亚洲gv白嫩小受在线观看| 99xxoo视频在线永久免费观看| 老司机亚洲精品影院无码| 18女人水真多免费高清毛片| 亚洲欧洲日韩极速播放 | 亚洲a一级免费视频| 97久久精品亚洲中文字幕无码| 亚洲免费福利视频| 国产亚洲精品VA片在线播放| 免费一级毛片不卡在线播放| 你是我的城池营垒免费观看完整版| 亚洲无线电影官网| 成年人免费观看视频网站| 美女18一级毛片免费看| 国产亚洲综合成人91精品 | 亚洲天堂中文字幕在线| 三级网站在线免费观看| 亚洲一区动漫卡通在线播放| 亚洲国产中文字幕在线观看| 日韩免费电影网站| 亚洲精品无码mⅴ在线观看| 亚洲日本中文字幕天堂网| 毛片免费全部播放无码| 国产精品亚洲五月天高清| 亚洲AV成人无码久久精品老人 | 国产成人综合亚洲一区| 亚洲av无码成人黄网站在线观看| 成年女人18级毛片毛片免费|