tadarank afiliados

19 maio, 2006

Ajax - Função rápida e simples

Ae povo,
Vou começando devagar aqui no blog. Tô meio sem tempo por causa do "bendito" TCC, por isso vou postando soluções que eu já desenvolvi lá no fórum Imasters mas que não tiveram a merecida atenção. heheh
ATUALIZAÇÃO: Vejam a versão nova do script (que também permite post) aqui

Bom, primeiramente vou postar algo que vai ajudar muito quem deseja parar de se preocupar com ajax.
Com esta minha função você não vai mais ficar se preocupando com instanciar, definir eventos de retorno, e toda aquela baboseira chata de 10 linhas que agente sempre tem que fazer na hora de usar o XMLHttpRequest.
Usem, testem e se tiverem algo a acrescentar, é só falar. Eu testei com sucesso no FF1.5 e no IE6.
Vantagens:
  1. Voce não precisa se preocupar com ficar instanciando ou coisa parecida. É só chamar a ajaxGet.
  2. Carrega também scripts javascript que vieram por ajax (exceto funções). Créditos para o skywalker.TO.
  3. Permite que voce carregue mais de um elemento ao mesmo tempo assincronamente.
  4. Permite que voce jogue o resultado da url em:
    • uma variável javascript,
    • diretamente no innerHTML de um elemento,
    • em um input
    • em um select sem se preocupar com nada.
  5. Você não precisa mais ficar se preocupando com a questão do cache.

  • Versão atual: 1.2
  • Atualizações futuras:
    • Melhorar o carregamento de javascripts que vierem pelo ajax usando a solução do pita.
    • Melhorar a parte de enviar caracteres acentuados usando o encodeURI
  • Forma de uso:
    • Coloque a função em um arquivo javascript e chame ele na página através do <script src="micoxAjax.js">
    • Chame a função assim: ajaxGet( sua_pagina [string] , variavel_ou_objeto_que_recebera_o_retorno [string ou object] , exibe_texto_carregando_ou_nao [true ou false])
  • Exemplos de uso:
    • Em um elemento qualquer: ajaxGet("http://www.suapagina.com/seuarquivo.htm",document.getElementById("div1"),true)
    • Em uma variável javascript: ajaxGet("http://localhost/lojavirtualfree/optionas.htm","document.getElementById('div2').innerHTML",false)
    • Em um input text: ajaxGet("http://localhost/lojavirtualfree/optionas.htm",document.getElementById("input1"),false)
    • Em um select (preenche com options): ajaxGet("http://localhost/lojavirtualfree/optionas.htm?viva",document.getElementById("select1"),true)
Enfim, a função. Copiem e colem ela em seu micoxAjax.js:
function ajaxGet(url,elemento_retorno,exibe_carregando){
/******
* ajaxGet - Coloca o retorno de uma url em um elemento qualquer
* Use a vontade mas coloque meu nome nos créditos. Dúvidas, me mande um email.
* A função é grande, coloque-a em um arquivo .js separado.
* Versão: 1.2 - 20/04/2006
* Autor: Micox - Náiron J.C.G - micoxjcg@yahoo.com.br - elmicox.blogspot.com
* Parametros:
* url: string; elemento_retorno: object||string; exibe_carregando:boolean
*  - Se elemento_retorno for um elemento html (inclusive inputs e selects),
*    exibe o retorno no innerHTML / value / options do elemento
*  - Se elemento_retorno for o nome de uma variavel
*    (o nome da variável deve ser declarado por string, pois será feito um eval)
*    a função irá atribuir o retorno à variável ao receber a url.
*******/
   var ajax1 = pegaAjax();
   if(ajax1){
       url = antiCacheRand(url)
       ajax1.onreadystatechange = ajaxOnReady
       ajax1.open("GET", url ,true);
       //ajax1.setRequestHeader("Content-Type", "text/html; charset=iso-8859-1");//"application/x-www-form-urlencoded");
       ajax1.setRequestHeader("Cache-Control", "no-cache");
       ajax1.setRequestHeader("Pragma", "no-cache");
       if(exibe_carregando){ put("Carregando ...")    }
       ajax1.send(null)
       return true;
   }else{
       return false;
   }
   function ajaxOnReady(){
       if (ajax1.readyState==4){
           if(ajax1.status == 200){
               var texto=ajax1.responseText;
               if(texto.indexOf(" ")<0) texto=texto.replace(/\+/g," ");
               //texto=unescape(texto); //descomente esta linha se tiver usado o urlencode no php ou asp
               put(texto);
               extraiScript(texto);
           }else{
               if(exibe_carregando){put("Falha no carregamento. " + httpStatus(ajax1.status));}
           }
           ajax1 = null
       }else if(exibe_carregando){//para mudar o status de cada carregando
               put("Carregando ..." )
       }
   }
   function put(valor){ //coloca o valor na variavel/elemento de retorno
       if((typeof(elemento_retorno)).toLowerCase()=="string"){ //se for o nome da string
           if(valor!="Falha no carregamento"){
               eval(elemento_retorno + '= unescape("' + escape(valor) + '")')
           }
       }else if(elemento_retorno.tagName.toLowerCase()=="input"){
           valor = escape(valor).replace(/\%0D\%0A/g,"")
           elemento_retorno.value = unescape(valor);
       }else if(elemento_retorno.tagName.toLowerCase()=="select"){       
           select_innerHTML(elemento_retorno,valor)
       }else if(elemento_retorno.tagName){
           elemento_retorno.innerHTML = valor;
           //alert(elemento_retorno.innerHTML)
       }   
   }
   function pegaAjax(){ //instancia um novo xmlhttprequest
       //baseado na getXMLHttpObj que possui muitas cópias na net e eu nao sei quem é o autor original
       if(typeof(XMLHttpRequest)!='undefined'){return new XMLHttpRequest();}
       var axO=['Microsoft.XMLHTTP','Msxml2.XMLHTTP','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0'];
       for(var i=0;i<axO.length;i++){ try{ return new ActiveXObject(axO[i]);}catch(e){} }
       return null;
   }
   function httpStatus(stat){ //retorna o texto do erro http
       switch(stat){
           case 0: return "Erro desconhecido de javascript";
           case 400: return "400: Solicitação incompreensível"; break;
           case 403: case 404: return "404: Não foi encontrada a URL solicitada"; break;
           case 405: return "405: O servidor não suporta o método solicitado"; break;
           case 500: return "500: Erro desconhecido de natureza do servidor"; break;
           case 503: return "503: Capacidade máxima do servidor alcançada"; break;
           default: return "Erro " + stat + ". Mais informações em http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html"; break;
       }
   }
   function antiCacheRand(aurl){
       var dt = new Date();
       if(aurl.indexOf("?")>=0){// já tem parametros
           return aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());
       }else{ return aurl + "?" + encodeURI(Math.random() + "_" + dt.getTime());}
   }
}
function select_innerHTML(objeto,innerHTML){
/******
* select_innerHTML - altera o innerHTML de um select independente se é FF ou IE
* Corrige o problema de não ser possível usar o innerHTML no IE corretamente
* Veja o problema em: http://support.microsoft.com/default.aspx?scid=kb;en-us;276228
* Use a vontade mas coloque meu nome nos créditos. Dúvidas, me mande um email.
* Versão: 1.0 - 06/04/2006
* Autor: Micox - Náiron J.C.G - micoxjcg@yahoo.com.br - elmicox.blogspot.com
* Parametros:
* objeto(tipo object): o select a ser alterado
* innerHTML(tipo string): o novo valor do innerHTML
*******/
   objeto.innerHTML = ""
   var selTemp = document.createElement("micoxselect")
   var opt;
   selTemp.id="micoxselect1"
   document.body.appendChild(selTemp)
   selTemp = document.getElementById("micoxselect1")
   selTemp.style.display="none"
   if(innerHTML.toLowerCase().indexOf("<option")<0){//se não é option eu converto
       innerHTML = "<option>" + innerHTML + "</option>"
   }
   innerHTML = innerHTML.replace(/<option/g,"<span").replace(/<\/option/g,"</span")
   selTemp.innerHTML = innerHTML
   for(var i=0;i<selTemp.childNodes.length;i++){
       if(selTemp.childNodes[i].tagName){
           opt = document.createElement("OPTION")
           for(var j=0;j<selTemp.childNodes[i].attributes.length;j++){
               opt.setAttributeNode(selTemp.childNodes[i].attributes[j].cloneNode(true))
           }
           opt.value = selTemp.childNodes[i].getAttribute("value")
           opt.text = selTemp.childNodes[i].innerHTML
           if(document.all){ //IEca
               objeto.add(opt)
           }else{
               objeto.appendChild(opt)
           }                   
       }   
   }
   document.body.removeChild(selTemp)
   selTemp = null
}

function extraiScript(texto){
//Maravilhosa função feita pelo SkyWalker.TO do imasters/forum
//http://forum.imasters.com.br/index.php?showtopic=165277&
   // 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('</script>', ini);
           // extrai apenas o script
           codigo = texto.substring(ini,fim);
           // executa o script
           //eval(codigo);
           /**********************
           * Alterado por Micox - micoxjcg@yahoo.com.br
           * Alterei pois com o eval não executava funções.
           ***********************/
           novo = document.createElement("script")
           novo.text = codigo;
           document.body.appendChild(novo);
       }
   }
}
A função oi postada originalmente aqui, com as devidas discussões e atualizações iniciais. Agora postei ela aqui, onde devem prosseguir as discussões.
Té mais... Gostou da dica acima? Então clica nos botões de compartilhamento abaixo e me ajude a dica a subir no Google.

73 comentários:

  1. meio grande, mas parece legal... assim q der vou dar uma lida manera nisso ae... to precisando dar uma estudada em ajax... akele abraço rapaz...

    ResponderExcluir
  2. Ok. Vou preparar uma matéria sobre ajax. Não será uma introdução como tudo que tem por aí...
    Pretendo fazer uma matéria com os problemas comuns em ajax e como resolvi.
    Obs.: Todos os que resolvi, eu coloquei aí nesta função pronta.

    ResponderExcluir
  3. Ja usei esse Script e realmente funciona.. muito bála!!!!. meu site tá malvado!!!.
    Um abraço.

    ResponderExcluir
  4. Olá! Realmente muito bom esse script.

    Gostaria de dar a sugestão de acrescentar uma função para envio de informações via POST.

    Tentei adcionar esse recurso mas não consegui. Se alguem conseguir, colabore!

    Abraços!
    juninhog12@gmail.com

    ResponderExcluir
  5. Sim, pretendo fazer sim.
    Assim que eu acabar a série sobre Menus CSS farei uma série sobre AJAX, como prometido aí acima.

    ResponderExcluir
  6. Excelente!!! Você não faz idéia do quando essa solução irá me ajudar. Eu tava procurando isso faz tempo... vc fez tudo! Demais. Muito obrigado.

    ResponderExcluir
  7. Parabéns pelo trabalho.

    ResponderExcluir
  8. Olá! Valeu pela função, carreguei 10 ajax de uma vez! =)
    Gostaria de saber uma alternativa para acentuação das palavras... utilizar ASP no meio do texto, com o server.url ou htmlencode não acho q deva ser a melhor solução! Mesmo assim valeu!!!

    ResponderExcluir
  9. Nada como pesquisar! =)
    Sua dica tbm: Response.Charset="ISO-8859-1"
    Valeuuu!

    ResponderExcluir
  10. Como processar o resultado, pra mim, o único resultado que vem é a string "Carregando..."

    ResponderExcluir
  11. Olá! Gostaria de saber como fazer uma verificação usando o AjaxGet, retornar seu valor em uma variavel dentro do JavaScript e de acordo com o 'número' retornado, abrir um ou outro alert por exemplo. Valeu! tomatebr@hotmail.com

    ResponderExcluir
  12. Mto show!!
    Alguem sabe de uma função como essa, assim facil de entender, que permita "favoritar" as páginas e usar o botão voltar? Valew...
    www.ezequias.net
    www.fxis.net

    ResponderExcluir
  13. kara putz vc é d+ meu se possivel envia + ai pra nos ficarmos loko em desenvolver cada vez + ajax!!
    ai kara tou comecando nessa area se puder e naum for pedir muito me manda + algo que eu possa estudar ajax, + assim o basico blz meu email é jeferson@operaintensa.com.br ,
    meu vlw e continue assim um grande abraco e se precisar estamos ai vlw !!!

    ResponderExcluir
  14. Cara, tem como eu conseguir preencher mais de um input com a mesma função ajaxGet colocada em um select?

    ResponderExcluir
  15. Sim barucco. É só você chamar a função ajaxGet 2 vezes.

    ResponderExcluir
  16. cara, estou com um problema em meu código...
    estou querendo executar uma javascript mas preciso que aconteça isso somente apos carregar o conteúdo do ajax, sabe como posso fazer isso?

    vls

    ResponderExcluir
  17. @jorn

    Procure sobre ajax síncrono (vc define o modo síncrono o 3o parametro da função open do objeto xmlhttprequest).

    Para um help mais específico procurem o fórum iEvolution.
    Ficar respondendo dúvidas nos comentários é ruim pois não há espaço para uma resposta mais completa.

    Té mais.

    ResponderExcluir
  18. valeu mesmo assim cara...
    vou dar uma olhada.

    ajudou bastante...

    ResponderExcluir
  19. Uau!

    Grande, mas parece bacana a função :)

    ResponderExcluir
  20. Perfeito, cara! Parabéns. Agora desculpa a ignorância... o pq disso:

    aurl + "&" + encodeURI(Math.random() + "_" + dt.getTime());

    na função antiCacheRand? Segurança? UAI?

    ResponderExcluir
  21. Olá Micox, tenho uma dúvida sobre seu código.

    Gostaria de saber como faço para passar valores para 2 layers no mesmo link, tipo: Quero atualizar o DIV conteudo e o DIV topo com valores diferentes passados na URL (por GET), como faço?

    Algo do tipo: para o DIV conteudo passo o valor: "pagina1.asp?id=1&post=10" e para o DIV topo passo: "pagina2.asp?id=1&cat=2".

    Tem alguma forma de passar valores diferentes para atualizar DIVs diferentes na mesma função?

    Obrigado pela código, tá show de bola!

    Abrs.

    ResponderExcluir
  22. Gostaria de saber como faço pro ajaxget ler uma pagina q possua um script? tipo
    http://www.digiartstudio.net/bondiboca/slide_home.php

    quero q esta pagina carregue em uma div como faço? Já tentei de tudo e nada. Achei seu código massa porém não consegui fazer isso dá uma luz.

    ResponderExcluir
  23. Gostaria de saber como faço pro ajaxget ler uma pagina q possua um script? tipo
    http://www.digiartstudio.net/bondiboca/slide_home.php

    quero q esta pagina carregue em uma div como faço? Já tentei de tudo e nada. Achei seu código massa porém não consegui fazer isso dá uma luz.

    Se tiver uma solução por favor micox me ajuda ai meu e-mail: andynhoo@gmail.com meu msn andynhoo@hotmail.com valeu.

    ResponderExcluir
  24. Ainda não testei.. sempre apanho pra fazer rodar esses codigos em ajax....
    masi cara boa sorte com seu TCC

    ResponderExcluir
  25. Opa. Tamo de volta.

    @davi
    A função anticache é baseada em se colocar um número aleatório como parametro na url que será chamada pra forçar que o navegador sempre solicite uma nova versão da página chamada pelo ajax. Como a função random() não garante que o número seja sempre aleatório (ele pode ser repetir às vezes), eu prefiro garantir que seja aleatório de verdade adicionando uma data.

    @gamedicas
    É só chamar a função ajaxGet 2 vezes no mesmo evento.
    Exemplo: onclick="ajaxGet(blabla);ajaxGet(blabla)"

    @digiart
    Você não deve ter lido meu tutoriai direito ué. hehehe
    Meu código faz isso tudo aí que você quer sem complicação é só chamar a função ajaxGet.

    @vinicius
    Valeu cara. Terminei o bixo.


    Valeu a todos ae. Voltei de férias agora e estou respondendo aos comentários no blog geral.

    ResponderExcluir
  26. Eu acho q não fui claro em minha pergunta

    o q eu quero é?

    Clicar no link: Lista carregar no DIV abaixo essa pagina ai

    http://www.digiartstudio.net/bondiboca/slide_home.php

    Sendo q nessa pagina ai tem um PHP + JAVASCRIPT.

    Testei de todas as formas com esse seu código todas sem exito, porém outras páginas deu de boa. Se você conseguir por favor me manda a solução. me add no teu msn andynhoo@hotmail.com

    ResponderExcluir
  27. Aaah, sim.
    Saquei agora o motivo do seu problema.

    É o seguinte:
    você está usando document.write no código javascript desta sua página.

    O método document.write, só é executado no load da página. Depois nem adianta tentar, ele não funfa. E quando funfa ele apaga a página inteira e só escreve o que ele quer.

    A solução pra você é retirar o document.write. E jogar o conteúdo dele em uma variável.
    Daí, após a variável estar preenchida com o que deve ser escrito, você altera o innerHTML de alguém usando esta variável.

    Qualquer outra dúvida, pergunte no fórum.

    té mais.

    ResponderExcluir
  28. cara.. vc ja esperimentou fazer assim no execScript para não criar instancias do child... sendo que aqui da varios problemas dependendo do browser...faça isso

    if (window.execScript) {
    window.execScript(codigo, "javascript")
    } else {
    window.eval(codigo);
    }

    ResponderExcluir
  29. Olá Micox.
    O ajax possui algum problema quando usa-se o AC_RunActiveContent.js para exibir os SWF. Vc teria algum exemplo para nós? Pois testei o exemplo que vc possui, e ao colocar o swf, o mesmo não aparece.

    Abraços
    Marcelo

    ResponderExcluir
  30. Olá Marcelo.

    Bom, eu nunca testei ajax com flash pra ver o que dava não.
    Mas quanto ao seu problema com o AC_RunActiveContent.js, é porque dentro deste arquivo há vários document.write e AJAX e Document.write não trabalham juntos de forma alguma (algum dia eu explico).

    O AC_RunActiveContent.js usa document.write para burlar a restrição do IE inserindo o objeto flash depois do carregamento da página.

    Como ajax já é carregado após o carregamento da página principal VOCÊ NÃO PRECISA USAR o AC_RunActiveContent.js para carregar seus flash's.
    É só colocar o código do objeto diretamente no seu (x)html.

    Testae e veja.

    ResponderExcluir
  31. Valeu grande fera. Ainda não testei a dica, mas muito obrigado pelo retorno.
    []´s

    ResponderExcluir
  32. Olá...primeiro agradecer pelo codigo, tem me ajudado mto, era exatamente o q eu precisava. Mas estou com um problema. Tenho uma pagina q carrega dentro da div. Nesta pagina tenho dois campos (input text e select). No IE esses campos aparecem, mas no FF no way. Se carrego a pagina normal, blz funfa, mas se carrega na div...nada....Poderia me ajudar nessa solução, por favor. MTO Obrigada....
    meu email: beatrizdesigner@gmail.com

    ResponderExcluir
  33. Olá Micox,

    Parabéns, é um excelente script!
    Você poderia me explicar que parte da função é responsável por fazer várias requisições assincronas, essa parte eu não consegui entender, apesar de ver funcionando.

    Agradeço a atenção,
    Rui

    ResponderExcluir
  34. É só você chamar a função várias vezes.

    ResponderExcluir
  35. Olá Micox, eu sei que tem que chamar a função várias vezes (uma para cada requisição), eu estava usando uma função que formava uma fila, e em chamadas assincronas com várias requisições ao mesmo tempo, ela só executava a última requisição e mostrava a mensagem de erro 'readyState é nulo ou não é um objeto' (sincronicamente ela funcionava), talvez sua função funcione em várias chamadas assincronas pelo ordem em que ela executa as várias funções que existem dentro dela. De qualquer forma, ela é ótima, parabéns!!!

    ResponderExcluir
  36. Cara será que é algum problema meu, não estou conseguindo usar o script no meu select, exemplo:

    Quando selecionar uma opção do select chama uma pagina numa div com uma variável setada dependendo do que escolher no select. Porém pra fazer isso eu preciso definir o 'onchange' no meu select e não no option e isso anula a possibilidade da variavel com uma valor mutavel. Como poderia resolver isso com sua função ????

    ResponderExcluir
  37. Renan, não entendi sua dúvida. POr favor poste ela no fórum: forum.ievolutionweb.com

    té mais.

    ResponderExcluir
  38. Peguei seu conteúdo e fiz um teste simples para o ajaxGet carregar uma página teste2.html na div teste, e simplesmente nao foi.

    Clique aqui


    E sim, teste2.html e a div teste existem. Testei no Firefox 3.0.*

    (O onclick tá alterado por causa do sistema do blogger)

    Se quiser me mandar resposta por e-mail, me add no MSN (jotacms@hotmail.com), porque tem uns 3 anos que não leio e-mail.

    ResponderExcluir
  39. Este comentário foi removido pelo autor.

    ResponderExcluir
  40. Ola, sempre usei Iframes, e sempre tive problemas quanto ao fundo, formatação e ainda sobre o tamanho do carregamento da página. E gostei muito do seu script, parabéns, agora, gostaria de tirar uma dúvida, no site da empresa que eu trabalho, todas as páginas carregam dentro de um iframe,até páginas em php, só que no seu script, eu consegui carregar á página do menu legal, porem a página que foi carregada para a próxima não fica dentro, tipo assim:


    Menu | Página 1
    .... | Página 1 | Página 2.

    ou seja como eu faço para a página 2 ficar ainda no mesmo local da página 1?

    ResponderExcluir
  41. Ola Micox,
    cara shoow de bola seu script, sem palavras, show de bola mesmo...

    cara teria como voce dar um exemplo de como passar valor para uma variavel javascript usando a função..

    desde já agradeço...

    ResponderExcluir
  42. CAra, essa funcionalidade tá meio bugada.
    O que pode ser feito é você alterar a parte onde tem o readyState e colocar sua funçaõ lá pra receber o retorno do ajax.

    Pergunda lá no fórum webly que dá pra responder mais detalhadamente.

    Té mais.

    ResponderExcluir
  43. Ola Micox dawe Blz ?!

    cara estou tendo um problema com a tag "select", tipow depois de carregar uma pagina com o ajaxGet, ai os campos "select" travam, por exemplo se o "select" tem 5 options ele fica selecionado o primeiro e não deixa selecionar os outros, awe só depois de um tempo que é possivel selecionar os outros....

    você sabe o pq disso ?
    valew té mais..

    ResponderExcluir
  44. Leandro, posta sua dúvida no fórum. Se possível com link pragente olhar e ver qualé o boró.

    ResponderExcluir
  45. Este comentário foi removido pelo autor.

    ResponderExcluir
  46. é facil usar $variaveis e manipular dados de formulario com o micoxajax?

    como chamo o link?

    cauechassot@yahoo.com.br

    ResponderExcluir
  47. Muito bom isso, me ajudou pra caramba em alguns trabalhos.
    Um exemplo que é aonde eu conheci é no site oficial do Victor e Leo

    ResponderExcluir
  48. Bom dia,

    É possivel fazer com que esta função ao receber a pagina processada em vez de usar uma função interna, passar pra outra função?
    Ex:
    function (url, funcao){
    var retorno=pegar(URL)
    funcao(retorno);
    }
    Assim ajax so fica com sua função de pegar resultados de outra pagina, e a outra função facemos o que precisamos.

    Abraços.

    Grato

    ResponderExcluir
  49. Não entendi cara. De qualquer jeito dê uma olhada na versão nova http://www.webly.com.br/Micox/ajaxGo.htm

    ResponderExcluir
  50. Funciona d+!!!
    Parabéns rapaz! Pq nao poe um zip pra dowload? se quiser eu te envio pq ja fiz! ehehehe

    ResponderExcluir
  51. Sim, provavelmente por isso e

    ResponderExcluir
  52. Maravilho, mas estou com um problema em páginas ASP ao qual utilizam Scripts AJAX e FORMS com o RUNAT="SERVER". Se eu retirar o RUNAT a pagina carrega normalmente, mas o outros itens que necessitam de AJAX do proprio ASP que carregam via scriptmanager necesssita do RUNAT habilitado do FORM. Eu nao sei como fazer isto funcionar. Da o mesmo erro em todas as versoes do MICOXAJAX ate a versao nova que tem um link no final dos comentarios

    ResponderExcluir
  53. Olá, tudo bem?
    Eu gostaria de criar minhas páginas com funções em ajax mas não consigo validar meus formulário.
    me ajuda!
    magno_brazil@hotmail.com

    ResponderExcluir
  54. El Micox... muito bom o seu script, porém estou tendo um problema, não sei se isso ocorre apenas comigo, mas ja testei em 3 navegadores... o problema está sendo na concatenação, ele não está interpretando o sinal de mais (+), fiz um teste simples, e mandei dar um alert na variável codigo. O meu script na pagina cerregada pelo ajax está assim "
    alert('Nome'+'Sobrenome');
    ". Na função extraiSript a váriavel código fica assim "alert('Nome' 'Sobrenome');" no lugar do mais (+) aparece um espaço em branco... Desde já agradeço se puder me auxiliar.
    Fabio - fabyoap@yahoo.com.br

    ResponderExcluir
  55. Galera essa função do micox me salvou muito a vida já, porém acho mais simples e mais rápido usarem um framework js para tais funções assim como o jQuery.

    ResponderExcluir
  56. Olá, porque só está retornando o nome dá página php? Não está vindo o conteúdo do echo... Alguma idéia? Grato

    ResponderExcluir
  57. Sou novo nesse conceito de Ajax, mas acredito que isso vai mudar a internet como a conhecemos! Alias, já está mudando...
    Mas não podia deixar de agradecer pelo trabalho e dizer que pode contar comigo em projetos audaciosos meu brother! Abração... rodrigo.conspena@gmail.com (Assembly, Pascal, C, C++, Java, JS, Symbian, Android, HTML, CSS, PHP...)

    ResponderExcluir
  58. Salvou minha vida! É um achado!!! Valeu!

    ResponderExcluir
  59. Bom dia estou usando esta função ajaxGo agora estou mudando para https e não está funcionando, tem como funcionar no HTTP e no HTTPS?

    att.
    Brambilla

    ResponderExcluir
  60. opa ja resolvi
    não preciso alterar nada na função e sim n ocaminho que chama
    att.
    Brambilla

    ResponderExcluir
  61. Micox, parabens pela sua função, ótima mesmo,
    estou usando ela a algum tempo, e é ótima,
    sabe se ela está apresentando erro no internet explorer 9?

    ResponderExcluir
  62. Caras, já tem um tempo que eu não fuço mais nessa função. Nem testei no IE9 nem chrome.

    ResponderExcluir
  63. Olá gostaria de saber como faço para funcionar com shadowbox ou outro plugin semelhante.
    Obrigado!!!

    ResponderExcluir
    Respostas
    1. Cada caso é um caso cara. Você precisaria me passar o URL da página para eu ver.
      Em qualquer caso, acredito que você pode fazer o seguinte:
      1) ao chamar o micoxGet, logo em seguida você manda carregar seu plugin javascript assincronamente também, tipo assim:
      loadS('http://seusite.com/seuscript.js');

      2) você precisará ter esta função javascript definida em algum lugar:
      //carregador javascript assincrono
      function loadS(ur){
      var c = d.createElement('script'); c.defer='defer'; c.type = 'text/javascript'; c.src = ur; d.body.appendChild(c);
      }

      Excluir
    2. resolvi com o async defer muito obrigado!!!

      Excluir
  64. Como faço para usas com shadowbox ou outro plugin semelhante?

    ResponderExcluir
  65. o endereço de meu site é

    scheinymalhas.com.br/hp/index_nova.php

    Em catalogo tem esse script

    src=shadowbox/shadowbox.js

    fora do Ajax ele funciona porem quando carregado via ajax ele não abre a janela como deveria.

    ResponderExcluir
  66. Este blog ainda esta ativo?
    TEstei o código mas não funfou no Opera 12 nem no FF 18.
    Aparece "true" na tela e na barra do navegador aparece o javascript que uso dentro de um A HREF

    ResponderExcluir
  67. Bom dia, esta função eu utilizo faz tempo por ser prática e funciona bem, mais estou vendo que no Chrome apresenta mensagem de erro no Console Uncaught TypeError: undefined is not a function ajaxgo.js:312, Não deixa de funcionar mais pode causar problemas em outros scripts. Teria alguma atualização desta função?
    Obrigado

    ResponderExcluir

Resultado! Concursos