Changeset 1319

Show
Ignore:
Timestamp:
06/11/09 19:32:16 (9 months ago)
Author:
admc
Message:

fixing the ie lookupByName in trunk

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/windmill/html/js/lib/elementslib.js

    r1136 r1319  
    120120  //DOM element lookup functions, private to elementslib 
    121121  var nodeByName = function (s) { //search nodes by name 
    122     //sometimes the win object won't have this object 
    123     try{ 
    124       var els = this.document.getElementsByName(s); 
    125       if (els.length > 0) { 
    126         return els[0]; 
    127       } 
    128     } 
    129     catch(err){}; 
     122    var getElementsByAttribute = function(oElm, strTagName, strAttributeName, strAttributeValue){ 
     123        var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName); 
     124        var arrReturnElements = new Array(); 
     125        var oAttributeValue = (typeof strAttributeValue != "undefined")? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)", "i") : null; 
     126        var oCurrent; 
     127        var oAttribute; 
     128        for(var i=0; i<arrElements.length; i++){ 
     129            oCurrent = arrElements[i]; 
     130            oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName); 
     131            if(typeof oAttribute == "string" && oAttribute.length > 0){ 
     132                if(typeof strAttributeValue == "undefined" || (oAttributeValue && oAttributeValue.test(oAttribute))){ 
     133                    arrReturnElements.push(oCurrent); 
     134                } 
     135            } 
     136        } 
     137        return arrReturnElements; 
     138    } 
     139       
     140    if (navigator.userAgent.indexOf('MSIE') != -1){ 
     141      var node = getElementsByAttribute(this.document, "*", "name", s); 
     142      if (node.length == 0){ 
     143        return null; 
     144      } 
     145      return node[0]; 
     146    } else { 
     147      //sometimes the win object won't have this object 
     148      try{ 
     149        var els = this.document.getElementsByName(s); 
     150        if (els.length > 0) { 
     151          return els[0]; 
     152        } 
     153      } 
     154      catch(err){}; 
     155    } 
    130156    return null; 
    131157  };