• 0
Sign in to follow this  
hipnos na area

Rodar Script No Ajax Está Dando Erro Em Caracter

Question

Achei essa script de rodar Scripts em Ajax porem quando se usa o caracter "+" em uma script

a função extraiScript() não lê o caracter deixando um espço em branco...

Script original:

<script>
document.write("aqui: "+variavel+".");
</script>
Script com a função extraiScript():
<script>
document.write("aqui: " variavel ".");
</script>
:blink: Se algum conseguir corrigir essem erro favor postar o código aqui...
<script>
function extraiScript(texto){
    // inicializa o inicio ><
    var ini = 0;
    // loop enquanto achar um script
    while (ini!=-1){
        // procura uma tag de script
        ini = texto.indexOf('<script', ini);
        // se encontrar
        if (ini >=0){
            // define o inicio para depois do fechamento dessa tag
            ini = texto.indexOf('>', ini) + 1;
            // procura o final do script
            var fim = texto.indexOf('</scr'+'ipt>', ini);
            // extrai apenas o script
            codigo = texto.substring(ini,fim);
            // executa o script
            eval(codigo);
        }
    }
}
/*
if (xmlhttp.readyState==4){
            // coloca o valor no objeto requisitado
            texto=unescape(xmlhttp.responseText.replace(/\+/g," "));
            document.getElementById(destino).innerHTML=texto;
            // executa scripts
            extraiScript(texto);
}*/

function openAjax() {
var Ajax;
try {Ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers mais populares, como: Firefox, Safari, dentre outros.
}catch(ee) {
try {Ajax = new ActiveXObject(" Msxml2.XMLHTTP"); // Para o IE da MS
}catch(e) {
try {Ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS
}catch(e) {Ajax = false;
}
}
}
return Ajax;
}

function carregaAjax(id,arquivo) {
if(document.getElementById) { // Para os browsers complacentes com o DOM W3C.
var exibeResultado = document.getElementById(""+id+""); // div que exibirá o resultado.
var Ajax = openAjax(); // Inicia o Ajax.
Ajax.open("GET", ""+arquivo+"", true); // fazendo a requisição
Ajax.onreadystatechange = function()
{
if(Ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...
exibeResultado.innerHTML = "<div align='center'><strong>Carregando...</strong></div>";
}
if(Ajax.readyState == 4) { // Quando estiver tudo pronto.
if(Ajax.status == 200) {
var resultado = Ajax.responseText; // Coloca o retornado pelo Ajax nessa variável
resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos (saiba mais aqui: http://www.plugsites.net/leandro/?p=4)
resultado = unescape(resultado); // Resolve o problema dos acentos
exibeResultado.innerHTML = resultado;
extraiScript(resultado);
} else {
exibeResultado.innerHTML = "Erro: .";
}
}
}
Ajax.send(null);
}
}
</script>
<a href="java script:carregaAjax('destino','chatajax2/index.php')">carrega</a>
<div id=destino></div>

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 0

é nesta parte que ele troca o + pelo espaço em branco:

resultado = resultado.replace(/\+/g," ");

Mas o que voce quer? Adicionar o + mesmo ou eliminar o espaço vazio? Ambos se resolve nessa linha

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.
Sign in to follow this