零全零美(www.zzgwt.com)
          生活中的很多事情,并不像If...Else那么簡單!
          posts - 96,comments - 52,trackbacks - 0
          $()這個創(chuàng)意確實(shí)是從Protoype偷來的,但是Protoype是不是原創(chuàng),那我就無從得知了。
          util.js中$()的實(shí)現(xiàn)如下:
          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中的實(shí)現(xiàn):
          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公布的標(biāo)準(zhǔn)嗎?

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


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

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


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 淮南市| 珠海市| 甘德县| 瓦房店市| 济南市| 上思县| 新河县| 呼玛县| 武邑县| 光泽县| 榕江县| 西宁市| 易门县| 凤翔县| 安岳县| 孝昌县| 樟树市| 太湖县| 镇赉县| 阿合奇县| 英吉沙县| 东方市| 樟树市| 咸阳市| 井冈山市| 顺义区| 鹤壁市| 彭水| 勃利县| 彝良县| 讷河市| 邹城市| 景洪市| 孝义市| 福安市| 蒲江县| 仪陇县| 洛川县| 东乡| 准格尔旗| 沛县|