Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

FabianoSouza

JS não funciona no onLoad de pg carregada via AJAX

Recommended Posts

Galera, quero que uma pg carregada via AJAX dispare um alert no onLoad do body. Isso não funciona. Por que?

Aliás, nenhuma function roda no onLoad de pgs carregas vida AJAX.

 

Como contorno esse problema??

 

Brigado!

 

 

Putz... Nenhuma saída?

 

Nenhuma alternativa, pessoal??

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mostre o que esta querendo fazer, eu não entendi nada

 

vc ta carregado pagina inteira por ajax?

 

é com jquery?

se for:

ja tentou?

 success: function( data ) {
    alert(0) ;
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carrego uma página inteira via AJAX com javascript mesmo. Até aqui tudo ok.

 

Porém, nenhuma função que chamo no onLoad do body desta página que foi carregada via AJAX funciona.

 

Já nos demais eventos (onlick, onmouseouver e etc) funciona qualquer função (na página que foi carregada via AJAX).

Uso JS puro. O que tenho que fazer para contornar isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Carrego uma página inteira via AJAX com javascript mesmo. Até aqui tudo ok.

se vai carregar a pagina inteira, então pra que usar ajax?

já que a grande vantagem do ajax é carregar apenas parte da página (não necessitando assim recarregar toda)

Citar

 

Antigamente a página inteira era carrega, porém com Ajax esse paradigma muda.

http://www.linhadecodigo.com.br/artigo/3585/ajax-basico-introducao.aspx

 

 

 

 

de qualquer forma, tente isso:

 

readyState==4 e

status==200

xmlhttp.onreadystatechange=function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
    //codigo
    }
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja

function.png

 

São duas telas: uma página comum (ao fundo) e outra página numa janela modal, sobre um "layer".

Infelizmente nenhuma function funciona quando a chamo no onLoad do body da pagina dentro da modal.

 

Esse é o problema. Preciso que ao abrir a modal o onLoad do body dela chame uma function. Só isso.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você viu minha sugestão no post anterior?

 

eai tentou?

nao tentou?

deu ?

nao deu?

apareceu algum erro?

o que vc já fez?

como tá seu código?

 

ajuda ai ô

 

talvez o onLoad de um body vindo por ajax nao funcione

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá amigo! Obrigado por dar atenção ao meu problema.

Tentei sim. Não funcionou.

 

Ouvi dizer em alguns fóruns que onLoad de um body vindo por ajax nao funcione.

Estou justamente buscando ter certeza disso. Talvez exista uma forma de fazer...por isso postei aqui.

 

Veja meu código.

  //Função para carregar página via AJAX
  try{
  xmlhttp = new XMLHttpRequest();
  }
  catch(ee){
  try{
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  }
  catch(e){
  try{
  xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  }
  catch(E){
  xmlhttp = false;
  }
  }
  }

  div_base = "";

//Aqui  fiz a alteração que sugeriu
  xmlhttp.readyState= function abre(arquivo,metodo,div){
  div_base = div;
  xmlhttp.open(metodo,arquivo);
  xmlhttp.onreadystatechange = modal_ajax
  xmlhttp.send(null)
  criaJanelaModal()

  }

  function modal_ajax() {
  nova_div = div_base;
  document.getElementById(nova_div).innerHTML="<div style='top:50%;left:50%;position:relative;>carregando...</div>"

//Aqui  fiz a alteração que sugeriu
if (xmlhttp.readyState==4 && xmlhttp.status==200){
  document.getElementById(nova_div).innerHTML = xmlhttp.responseText
  var conteudo = document.getElementById("modal_ajax").style.display="block";

  }
  }


Na página pai uso este código (no onClick de algum botão) para chamar a página filha via AJAX.

	abre("minha-pagina.asp/", "GET", "modal_ajax")

Essa estrutura (sem a alteração que sugeriu) uso no site todo. Funciona.

Agora preciso descobrir uma forma de fazer funcionar functions no onLoad do body da página filho

Compartilhar este post


Link para o post
Compartilhar em outros sites
xmlhttp.onreadystatechange = modal_ajax

não tem que ter um '()' no final?

se ainda assim não funcionar, tem que saber o porquê, abre o console veja que erro dá quando faz a requisição.

 

 

Você quer um alert quando a segunda pagina aparecer?

não vi nenhum alert no código

 

o alert não precisa que estar no onload da outra pagina

pode estar no próprio código ajax. alert ou qualquer outra função .

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa! Tive um avanço. Percebi que se eu colocar o alert (ou qualquer outra function) junto com a função que abre a modal, a coisa funciona.

  if (xmlhttp.readyState==4){
  document.getElementById(nova_div).innerHTML = xmlhttp.responseText
  var conteudo = document.getElementById("modal_ajax").style.display="block";
alert("teste!")

O problema desse método é que minha função que chama a modal (post #8) é genérica. Eu a aplico para todo o site. Por isso não posso colocar o alert nela. Talvez o jeito seja criar uma outra function específica, semelhante a esta que é genérica, e lá sim colocar o alert.

 

Muito obrigado. Encontrei um caminho.

 

Abc!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.