Olá pessoal!
Estou tentando meus fontes JavaScripts, mas estou tendo alguns problemas.
Problema 1:
tenho a seguinte linha (77):
if (result.readyState==4 && ( result.status==0 || result.status==200 ) )
deveria ser apenas
if (result.readyState==4 && result.status==200 )
Problema 2:
Em javascript não é possivel ler aquivos locais com o XMLHttpRequest. Seria uma falha de segurança. Sendo assim, como vcs testam os fontes sem precisar criar um servidor local? Quais as melhores formas para testes com arquivos locais?
No chrome temos que executa-lo dessa forma para que se permita os testes, mas isso impede que o result.status seja igual a 200:
este é meu fonte:
main.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<script>
var divModalEspera;
var Conexao;
//==============================================================
// Cria Modal Espera
//==============================================================
CriateModalEspera = function()
{
//======================================================
var divModalEspera = document.createElement("div");
divModalEspera.id = "divModalEspera";
divModalEspera.style.position = "absolute";
divModalEspera.style.bottom = "0px";
divModalEspera.style.top = "0px";
divModalEspera.style.right = "0px";
divModalEspera.style.left = "0px";
divModalEspera.style.opacity = "0.5";
divModalEspera.style.backgroundColor="#f3f3f3";
divModalEspera.style.visibility ="hidden";
divModalEspera.style.display = "none"; //this is needed mainly for Chrome
divModalEspera.Close = function()
{
divModalEspera.style.visibility ="hidden";
divModalEspera.style.display = "none"; //this is needed mainly for Chrome
}
divModalEspera.Show = function()
{
divModalEspera.style.visibility = "visible";
divModalEspera.style.display = "block"; //this is needed mainly for Chrome
}
document.body.appendChild( divModalEspera );
return divModalEspera;
}
// fonte base deste conhecimento: http://www.w3schools.com/dom/dom_httprequest.asp
CreateLoader = function()
{
var result;
try
{
// Firefox, Opera 8.0+, Safari
result=new XMLHttpRequest();
}
catch (e)
{
// Internet Explorer
try
{
result=new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
result=new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e)
{
alert("Seu navegador não suporta AJAX!");
return false;
}
}
}
result.loadDadosAction = function(Metod, Path, action )
{
result.onreadystatechange = function()
{
if (result.readyState==4 && ( result.status==0 || result.status==200 ) ) // <=== deveria ser apenas if (result.readyState==4 && result.status==200 )
{
action(result.responseText );
}
}
result.open( Metod, Path, true );
result.setRequestHeader('content-type','text/plain; charset=iso-8859-1');
result.overrideMimeType('text/plain; charset=iso-8859-1');
result.send();
}
result.sendDados = function(stra, strb, strc, action )
{
result.onreadystatechange = function()
{
if (result.readyState==4 && result.status==200 )
{
action(result.responseText );
}
}
result.open( stra, strb, strc );
result.overrideMimeType('text/plain; charset=iso-8859-1');
result.send();
}
return result;
}
//==============================================================
// Cria meus objetos principais
//==============================================================
loadPage = function()
{
divModalEspera = CriateModalEspera();
Conexao = CreateLoader();
}
teste = function( )
{
divModalEspera.Show();
CallBack = function (str)
{
alert(str);
divModalEspera.Close();
}
Conexao.loadDadosAction("GET", "values.html", CallBack );
}
</script>
</head>
<body onload="loadPage()" >
<button type="button" onclick="teste();">teste</button>
</body>
</html>
Este é o arquivo que gostaria de ler localmente:
values.html
este é o texto que quero imprimir. Apenas isso.