零全零美(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)  編輯  收藏

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


          網站導航:
           
          主站蜘蛛池模板: 安新县| 渭南市| 启东市| 漳浦县| 澎湖县| 荔浦县| 柞水县| 喜德县| 遂宁市| 马尔康县| 江安县| 巩义市| 迁西县| 莎车县| 施秉县| 福安市| 专栏| 英德市| 上高县| 微博| 新绛县| 尼玛县| 莱州市| 高陵县| 黄浦区| 长岛县| 合阳县| 昌黎县| 仙居县| 宝丰县| 麟游县| 观塘区| 镶黄旗| 宜君县| 桃园县| 景宁| 历史| 哈密市| 新兴县| 资阳市| 兴国县|