零全零美(www.zzgwt.com)
          生活中的很多事情,并不像If...Else那么簡單!
          posts - 96,comments - 52,trackbacks - 0
          $()這個創意確實是從Protoype偷來的,但是Protoype是不是原創,那我就無從得知了。
          util.js中$()的實現如下:
          var $;
          if (!$) {
            $ 
          = dwr.util.byId;
          }

          if (document.getElementById) {
            dwr.util.byId 
          = function() {
              
          var elements = new Array();
              
          for (var i = 0; i < arguments.length; i++) {
                
          var element = arguments[i];
                
          if (typeof element == 'string') {
                  element 
          = document.getElementById(element);
                }
                
          if (arguments.length == 1) {
                  
          return element;
                }
                elements.push(element);
              }
              
          return elements;
            };
          }
          else if (document.all) {
            dwr.util.byId 
          = function() {
              
          var elements = new Array();
              
          for (var i = 0; i < arguments.length; i++) {
                
          var element = arguments[i];
                
          if (typeof element == 'string') {
                  element 
          = document.all[element];
                }
                
          if (arguments.length == 1) {
                  
          return element;
                }
                elements.push(element);
              }
              
          return elements;
            };
          }
          同樣的代碼為什么要寫兩遍呢?就算Mozilla瀏覽器不支持document.all,難道IE下就不能使用document.getElementById嗎?再看:Protoype中的實現:
          function $(element) {
            
          if (arguments.length > 1) {
              
          for (var i = 0, elements = [], length = arguments.length; i < length; i++)
                elements.push($(arguments[i]));
              
          return elements;
            }
            
          if (typeof element == 'string')
              element 
          = document.getElementById(element);
            
          return Element.extend(element);
          }
          兩下相比,好像DWR并不比老師高招啊。而DWR文檔上的說法是這樣可以讓更多的瀏覽器支持!!!document.getElementById()不是ECMA公布的標準嗎?

              有點暈,剛才GOOGLE了一下,卻發現了這篇文章http://www.cnblogs.com/xiang/archive/2005/10/08/250273.html,一試之下果然如此,看來真的要鄭重的對待document.getElementById()和document.all了。
              這篇文章大致是說:在IE中,如果有一個HTML標簽的name屬性和id屬性的值相同,那么document.getElementById抓到的是那個name,而不是id。
              還有就是:
          document.getElementById IE5.0以下的不支持!
          document.all IE4.0以上的支持!


          posted on 2008-04-19 20:40 零全零美 閱讀(244) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 高清| 德保县| 辛集市| 报价| 宣威市| 酒泉市| 太仆寺旗| 正安县| 灵台县| 双鸭山市| 田东县| 怀集县| 金沙县| 孟连| 册亨县| 湖口县| 永康市| 将乐县| 锡林浩特市| 汝阳县| 即墨市| 阿坝| 郯城县| 青龙| 临朐县| 基隆市| 牡丹江市| 建湖县| 红原县| 调兵山市| 麦盖提县| 甘南县| 临邑县| 崇州市| 丹寨县| 米林县| 鲁甸县| 瓮安县| 彭阳县| 兴仁县| 望城县|