Incompatibilidade de Browsers

Galera,

Como faco para ler o xml um objeto no firefox?. A getElementByTagName nao funciona. Essa incompatibilidade…

Alberto

Kra,vc estah usando :

1)getElementByTagName ou
2)getElementsByTagName ?

Como disse GraveDigger, o certo é getElementsByTagName. Funciona perfeitamente no firefox, como qualquer outro código javascript padronizado pelo W3C. Se seguir os padrões do W3C, você pode ter problemas de javascript e CSS com o IE, mas não com Firefox, Opera, Safari…

Me lembro de ter lido em algum lugar que o IE (versões atuais) também segue os padrões assim como esses demais. O problema é que o IE , metido a engraçadinho como sempre, acrescenta um bucado de coisa que muitos acham que são incompatibilidade (mais uma daquelas jogadinhas da MS). Se o desenvolvedor seguir os padrões W3C provavelmente ele não vai ter problemas. Alguem confirma isso?

Minha funcao eh essa:

function metodoDefault(responseXML){     
     var items = responseXML.getElementsByTagName("response")[0];
     var novoPreco=0;
     var subTot=0;
     var id = 0;
     if(items.childNodes.length>0){
        var item = items.childNodes[0];      

        id = item.getElementsByTagName("id")[0].childNodes[0].nodeValue;
        novoPreco = item.getElementsByTagName("preco")[0].childNodes[0].nodeValue;                
        subTot = item.getElementsByTagName("subtotal")[0].childNodes[0].nodeValue;        
        id = id.replace("\n","");
        //alert(document.PedidoForm.);
        //$('strPreco22').innerHTML= "R$ "+novoPreco;
        $('strSubTotal').innerHTML = "R$ "+subTot;
     }
   }

Esse $() eh uma funcao que retorna o getElementById. No ie funciona normalmente, mas no firefox para nesta linha item.getElementsByTagName("id")[0].childNodes[0].nodeValue;

Alguma sugestao?:slight_smile:

Alberto

Eu faço assim:

unidades = req.responseXML.getElementsByTagName("UNIDADES")[0]; for (i = 0; i < unidades.childNodes.length; i++) { id = unidades.childNodes[i].getElementsByTagName("ID")[0].firstChild.data; nome = unidades.childNodes[i].getElementsByTagName("NOME")[0].firstChild.data; }Já que você está usando o prototype, já tentou isso? http://www.sergiopereira.com/articles/prototype.js.html#Dollar_A_Function