零全零美(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 零全零美 閱讀(246) 評論(0)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 信阳市| 若尔盖县| 林口县| 青铜峡市| 贵港市| 南汇区| 景德镇市| 邛崃市| 岱山县| 四川省| 浑源县| 横山县| 游戏| 深水埗区| 房山区| 施秉县| 祁东县| 丰城市| 扬中市| 梅河口市| 阜平县| 呈贡县| 乌审旗| 威信县| 西乌珠穆沁旗| 灵丘县| 汕尾市| 温宿县| 嘉善县| 理塘县| 山西省| 周宁县| 宜宾市| 大城县| 阿鲁科尔沁旗| 仁化县| 儋州市| 安陆市| 东平县| 兖州市| 桂东县|