Este é o meu primeiro post neste fórum que já há tempos utilizo para consulta, porém agora chegou minha vez de postar aqui. Vou ser objetivo.
Comprei o livro "Web Interativa com Ajax e PHP" do escritor Juliano Niederauer e descobri alguns bugs. Entrei na página do autor, lhe enviei um email, mas ele não respondeu. Por isso, gostaria de resolver uma dúvida se puderem me ajudar.
Logo abaixo seguem 4 arquivos, um xml, um html e dois js. Sua execução é bem simples. Você executa a página html e ela usa o arquivo exemplo2.js para buscar informações no arquivo teste.xml e trazer para a tela no arquivo exemplo2.html. Este processo funciona perfeitamente no Internet Explorer, mas não no Firefox. Segundo o plugin Firebug do Navegador Firefox o erro está na linha 4 do arquivo exemplo2.js ( var raiz = documentoXML.getElementsByTagName('raiz').item(0);\n).
Enfim, como executar isso corretamente no Firefox?
Arquivo exemplo2.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 TRansitional//EN"
"http://www.w3.org/TR/html14/loose.dtd">
<html>
<head>
<title>Web Interativa com Ajax</title>
<script type="text/javascript" src="bibliotecaAjax.js"></script>
<script type="text/javascript" src="exemplo2.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<h2>Lendo uma resposta XML </h2>
<form action="java script:void%200" onSubmit="requisicaoHTTP('GET','teste.xml',true); return false">
<p><input type="submit" name="Testar" value="Testar"> <span id="campoResposta"></span></p>
</form>
</body>
</html>
Arquivo exemplo2.js
function trataDados()
{
var documentoXML = ajax.ResponseXML; // obtém a resposta como XML
var raiz = documentoXML.getElementsByTagName('raiz').item(0);
var info = raiz.firstChild.data;
document.getElementById("campoResposta").style.backgroundColor="yellow";
document.getElementById("campoResposta").innerHTML=info;
}
Arquivo teste.xml
<?xml version="1.0" ?>
<raiz>
Isto é um teste.
</raiz>
Arquivo bibliotecaAjax.js
var ajax;
var dadosUsuario;
//------------- cria o objeto e faz a requisição ------------
function requisicaoHTTP(tipo,url,assinc)
{
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest(); // Mozilla, Safari,...
}
else
if(window.ActiveXObject) //IE
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
if(!ajax)
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(ajax) // iniciou com sucesso
{
iniciaRequisicao(tipo,url,assinc);
}
else
{
alert("Seu navegador não pussui suporte a essa aplicação!");
}
}
//------------- Inicializa o objeto criado e envia os dados (se existirem) -----
function iniciaRequisicao(tipo,url,bool)
{
ajax.onreadystatechange = trataResposta;
ajax.open(tipo,url,bool);
if(window.XMLHttpRequest)
{
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
ajax.overrideMimeType("text/XML"); /* usado somente no Mozilla */
}
else
{
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
}
ajax.send(dadosUsuario);
}
// ------------ Inicia requisição com envio de dados -------------
function enviaDados(url)
{
criaQueryString();
requisicaoHTTP("POST",url,true);
}
// ------------ Cria a string a ser enviada, formato campo1 = valor1&campo2=valor2... -------
function criaQueryString()
{
dadosUsuario="";
var frm = document.forms[0];
var numElementos = frm.elements.length;
for(var i = 0; i < numElementos; i++)
{
if(i < numElementos-1)
{
dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&";
}
else
{
dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value);
}
}
}
// ------------ Trata a resposta do servidor ---------------
function trataResposta()
{
if(ajax.readyState == 4)
{
if(ajax.status == 200)
{
trataDados(); // criar essa função no seu programa
}
else
{
alert("Problema na comunicação com o objeto XMLHttpRequest");
}
}
}
Pergunta
Paulada
Olá a todos
Este é o meu primeiro post neste fórum que já há tempos utilizo para consulta, porém agora chegou minha vez de postar aqui. Vou ser objetivo.
Comprei o livro "Web Interativa com Ajax e PHP" do escritor Juliano Niederauer e descobri alguns bugs. Entrei na página do autor, lhe enviei um email, mas ele não respondeu. Por isso, gostaria de resolver uma dúvida se puderem me ajudar.
Logo abaixo seguem 4 arquivos, um xml, um html e dois js. Sua execução é bem simples. Você executa a página html e ela usa o arquivo exemplo2.js para buscar informações no arquivo teste.xml e trazer para a tela no arquivo exemplo2.html. Este processo funciona perfeitamente no Internet Explorer, mas não no Firefox. Segundo o plugin Firebug do Navegador Firefox o erro está na linha 4 do arquivo exemplo2.js ( var raiz = documentoXML.getElementsByTagName('raiz').item(0);\n).
Enfim, como executar isso corretamente no Firefox?
Arquivo exemplo2.html
Arquivo exemplo2.js Arquivo teste.xml Arquivo bibliotecaAjax.js:blush:
Editado por PauladaAdcionar tag's (Jonathan)
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.