Changeset 228 for trunk/common

Show
Ignore:
Timestamp:
09/28/07 20:18:33 (2 years ago)
Author:
ydnar
Message:

bugid:58987; added Enumerator class for non-IE browsers

Location:
trunk/common
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/common/Core.js

    r217 r228  
    883883 
    884884 
     885/* enumerable interface */ 
     886 
     887if( !defined( window.Enumerator ) ) { 
     888    window.Enumerator = new Class( Object, { 
     889        init: function( a ) { 
     890            this.data = a; 
     891            this.index = 0; 
     892        }, 
     893         
     894         
     895        atEnd: function() { 
     896            return this.index >= (this.data.length - 1) ? true : false; 
     897        }, 
     898         
     899         
     900        item: function() { 
     901            return this.atEnd() ? undefined : this.data[ this.index ]; 
     902        }, 
     903         
     904         
     905        moveFirst: function() { 
     906            this.index = 0; 
     907            return this.item(); 
     908        }, 
     909         
     910         
     911        moveNext: function() { 
     912            this.index++; 
     913            return this.item(); 
     914        } 
     915    } ); 
     916} 
     917 
     918 
    885919/* ajax */ 
    886920 
  • trunk/common/DOM.js

    r221 r228  
    568568        var parentDocument = pw.document; 
    569569        var es = parentDocument.getElementsByTagName( "iframe" ); 
    570         for( var i = 0; i < es.length; i++ ) { 
    571             var e = es[ i ]; 
     570        //% for( var i = 0; i < es.length; i++ ) { 
     571        //%     var e = es[ i ]; 
     572        for( var en = new Enumerator( es ); !en.atEnd(); en.moveNext() ) { 
     573            var e = en.item(); 
    572574            try { 
    573575                var d = e.contentDocument || e.contentWindow.document; 
     
    582584    filterElementsByClassName: function( es, cn ) { 
    583585        var filtered = []; 
    584         for( var i = 0; i < es.length; i++ ) { 
    585             var e = es[ i ]; 
     586        //% for( var i = 0; i < es.length; i++ ) { 
     587        //%     var e = es[ i ]; 
     588        for( var en = new Enumerator( es ); !en.atEnd(); en.moveNext() ) { 
     589            var e = en.item(); 
    586590            if( DOM.hasClassName( e, cn ) ) 
    587591                filtered[ filtered.length ] = e; 
     
    597601            return es; 
    598602        var f = []; 
    599         for( var i = 0; i < es.length; i++ ) { 
    600             var e = es[ i ]; 
     603        //% for( var i = 0; i < es.length; i++ ) { 
     604        //%     var e = es[ i ]; 
     605        for( var en = new Enumerator( es ); !en.atEnd(); en.moveNext() ) { 
     606            var e = en.item(); 
    601607            if( !e ) 
    602608                continue; 
     
    615621        var f = []; 
    616622        tn = tn.toLowerCase(); 
    617         for( var i = 0; i < es.length; i++ ) { 
    618             var e = es[ i ]; 
     623        //% for( var i = 0; i < es.length; i++ ) { 
     624        //%    var e = es[ i ]; 
     625        for( var en = new Enumerator( es ); !en.atEnd(); en.moveNext() ) { 
     626            var e = en.item(); 
    619627            if( e.tagName && e.tagName.toLowerCase() == tn ) 
    620628                f.push( e ); 
     
    922930            return; 
    923931        var es = DOM.getAncestors( ev.target, true ); 
    924         for( var i = 0; i < es.length; i++ ) { 
     932        //% for( var i = 0; i < es.length; i++ ) { 
     933        //%     var e = es[ i ]; 
     934        for( var en = new Enumerator( es ); !en.atEnd(); en.moveNext() ) { 
     935            var e = en.item(); 
    925936            try { 
    926                 var e = es[ i ]; 
    927937                var v = e.getAttribute ? e.getAttribute( a ) : null; 
    928938                if( v ) {