1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Problema de javascript no Safari e no Opera em Macintosh

Discussão em 'Web Development' iniciada por NeO_CooL, 27 de Fevereiro de 2007. (Respostas: 0; Visualizações: 936)

  1. NeO_CooL

    NeO_CooL Power Member

    tenho uma pag de html com varias tabelas mas quero que uma certa tabela fique com as linhas em zebra.

    O script funciona sem problemas no firefox so q no Safari e Opera no MAC nao funciona...

    O script é o seguinte:

    Código:
    function zebra()
    {
        var tabelas = document.getElementsByTagName("table");    
    //procura uma tabela com a classe indicada
        for(var x=0;x!=tabelas.length;x++){
            var table = tabelas[x];
            if (! table) { return; }
                
            if (table.className.indexOf("conteudo") < 0) {
                continue;
            }
    //procura linhas com a classe indicada        
            var trs = getElementsByClassName(table, "elementos");
            var even=true;
            for (var i = 0; i< trs.length; i++){
    //verifica se e coluna par ou impar e coloca com sobreado
                if(even){
                    var tds = trs[i].getElementsByTagName("td");
                    //var tds = trs[i].childNodes;
                    for(var j = 0; j < tds.length; j++){
                        tds[j].style.backgroundColor = "#FFE48A";
                        tds[j].style.borderTopColor = "#ff9900";
                        tds[j].style.borderTopWidth = "1px";
                        tds[j].style.borderTopStyle = "solid";
                        tds[j].style.borderBottomColor = "#ff9900";                
                        tds[j].style.borderBottomWidth = "1px";
                        tds[j].style.borderBottomStyle = "solid";
                    }
                }
            
                even=!even;
            }
        }
    }
    
    //procura as linhas q sejam pares ou impares
    function getElementsByClassName(element, classe)
    {
        var elements = new Array(0);
        var childs = element.childNodes;
            for(var i=0; i < childs.length; i++){
                if(childs[i].className != classe){
                    elements = Array.concat(elements, getElementsByClassName(childs[i], classe));
                }
                else{
                    if(childs[i].className == classe){
                        elements.push(childs[i]);
                    }
                }
            }
    return elements;
    }
    e depois tenho no ficheiro html:

    Código:
        <script language="JavaScript" type="text/javascript" src="zebra.js"></script>
        <body onLoad="zebra()">
    A tecnolologia usada é JSP e a pag tem frames em cima e do lado direito, bem cm a maior q é a do meio.
     

Partilhar esta Página