Changeset 1931


Ignore:
Timestamp:
08/14/07 11:21:47 (12 years ago)
Author:
laszlo
Message:

fixed #1479 spent 12h
I've moved JavaScript? to js_helper.js, and extended it for Opera and Safari.

Location:
trunk/skins
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/skins/lemill/js_helpers.js

    r1730 r1931  
    518518    //controls.style.display = 'none'; 
    519519} 
     520 
     521window.onload = function() {        
     522    // little hack for Mozilla Firefox, Opera and Safari 
     523        // here we emulate the css3 word-wrap feature  
     524        var isGecko = navigator.userAgent.toLowerCase().indexOf('gecko') != -1; 
     525        var isOpera = navigator.userAgent.toLowerCase().indexOf('opera') != -1; 
     526        var isSafari = navigator.userAgent.toLowerCase().indexOf('safari') != -1; 
     527         
     528        if(isSafari) 
     529        isGecko = false; 
     530         
     531            if(isGecko || isOpera || isSafari) { 
     532        var aryClassElements = new Array(); 
     533         
     534        function getElementsByClassName( strClassName, obj ) { 
     535            if ( obj.className == strClassName )  
     536                aryClassElements[aryClassElements.length] = obj; 
     537            for ( var i = 0; i < obj.childNodes.length; i++ ) 
     538                getElementsByClassName( strClassName, obj.childNodes[i] ); 
     539        }    
     540         
     541        aryClassElements.length = 0; 
     542        getElementsByClassName( 'wrapme', document ); 
     543 
     544        for ( var i = 0; i < aryClassElements.length; i++ ) { 
     545            var elem = aryClassElements[i];        // maintain a reference to the bound element 
     546            elem.style.overflow =  "hidden";  
     547            if(isGecko) {        
     548            elem.addEventListener('overflow', 
     549            function() {     
     550                // matches any "mangled" HTML tag 
     551                var exp = /<&#8203;\/*[&#8203;_\s="'\w]+>/g; 
     552                var txt = elem.innerHTML;    // the bound element's innerHTML 
     553                var chars = txt.split(''); 
     554                var newTxt = chars.join('&#8203;');      
     555                newTxt = newTxt.replace(exp, reconstructTag);                
     556                elem.innerHTML = newTxt; 
     557            },false); 
     558            } else 
     559            if(isOpera || isSafari) { 
     560                var exp = /<&#8203;\/*[&#8203;_\s="'\w]+>/g; 
     561                var txt = elem.innerHTML;    // the bound element's innerHTML 
     562                var chars = txt.split(''); 
     563                var newTxt = chars.join('&#8203;');      
     564                newTxt = newTxt.replace(exp, reconstructTag);                
     565                elem.innerHTML = newTxt; 
     566            } 
     567        } 
     568         
     569                function reconstructTag(_tag) 
     570                { 
     571                    return _tag.replace(/&#8203;/g, ''); 
     572                }    
     573       } 
     574} 
  • trunk/skins/lemill_tables/main_template.pt

    r1929 r1931  
    151151      </metal:block> 
    152152 
    153     <script type="text/javascript"> 
    154             // little hack for Mozilla 
    155         // here we emulate the css3 word-wrap feature  
    156             if(navigator.userAgent.toLowerCase().indexOf('gecko') != -1) { 
    157         var aryClassElements = new Array(); 
    158          
    159         function getElementsByClassName( strClassName, obj ) { 
    160             if ( obj.className == strClassName )  
    161                 aryClassElements[aryClassElements.length] = obj; 
    162             for ( var i = 0; i < obj.childNodes.length; i++ ) 
    163                 getElementsByClassName( strClassName, obj.childNodes[i] ); 
    164         }    
    165          
    166         aryClassElements.length = 0; 
    167         getElementsByClassName( 'wrapme', document ); 
    168  
    169         for ( var i = 0; i < aryClassElements.length; i++ ) { 
    170             var elem = aryClassElements[i];        // maintain a reference to the bound element 
    171             elem.style.overflow =  "hidden;";   
    172             elem.addEventListener('overflow', 
    173             function() {     
    174                 // matches any "mangled" HTML tag 
    175                 var exp = /<&#8203;\/*[&#8203;_\s="'\w]+>/g; 
    176                 var txt = elem.innerHTML;    // the bound element's innerHTML 
    177                 var chars = txt.split(''); 
    178                 var newTxt = chars.join('&#8203;');      
    179                 newTxt = newTxt.replace(exp, reconstructTag);                
    180                 elem.innerHTML = newTxt; 
    181             },false); 
    182         } 
    183          
    184                 function reconstructTag(_tag) 
    185                 { 
    186                     return _tag.replace(/&#8203;/g, ''); 
    187                 }    
    188        }     
    189     </script> 
    190153</body> 
    191154</html> 
Note: See TracChangeset for help on using the changeset viewer.