Ir para conteúdo

POWERED BY:

Arquivado

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

Isadora Fortunato

Ajax dentro da div

Recommended Posts

Olá pessoal, estou tendo problemas aqui com uma div que puxa um *.asp dentro dela... o problema é que dentro dessa asp que é carregada tenho que executar uma função que tmb esta dentro do meu ajax. alguem por favor poderia me ajudar ?

 

ajax_carrega_01.js

function AJAX(){
try{
xmlHttp=new XMLHttpRequest(); // Firefox, Opera 8.0+, Safari
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); // Internet Explorer
return xmlHttp;
}
catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
return xmlHttp;
}
catch (e){
alert("Your browser does not support AJAX.");
return false;
}
}
}
}

function fetch_unix_timestamp()
{
return parseInt(new Date().getTime().toString().substring(0, 10))
}

////////////////////////////////
//
// Refreshing the DIV TIMEDIV1
//
////////////////////////////////

function refreshdiv_timediv1(){

// Customise those settings

var divid = "timediv1";
var url = "carregado01.asp";


// Create xmlHttp

var xmlHttp_one = AJAX();

// No cache

var timestamp = fetch_unix_timestamp();
var nocacheurl = url+"?t="+timestamp;

// The code...

xmlHttp_one.onreadystatechange=function(){
if(xmlHttp_one.readyState==4){
document.getElementById(divid).innerHTML=xmlHttp_one.responseText;
}
}
xmlHttp_one.open("GET",nocacheurl,true);
xmlHttp_one.send(null);
}

//testando comando de alert
function alert55()
{
alert ("Esta é uma caixa de diálogo ALERT do JavaScript!")
}

 

principal.asp

<html>
<title>titulo</title>
<head>
<script src="ajax_carrega_01.js"></script>
</head>
<body>
## CARREGANDO COM AJAX ##
<script type="text/javascript">
refreshdiv_timediv1();
</script>
<div name="timediv1" id="timediv1" style="background-color: #cccccc;"></div>
</body>
</html>

[b]carregado01.asp[/b]
CARREGADOR 01
<%
response.write now()
%>
<script type="text/javascript">
alert55();
</script>

vale ressaltar que tmb tentei jogar nesse caregado01.asp o alert direto tmb nao pegou... assim:

<script type="text/javascript">
alert ("Esta é uma caixa de diálogo ALERT do JavaScript!")
</script>

 

Obrigada pela atenção pessoal! :rolleyes:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi, bom dia.

 

Qndo você trás um conteúdo com ajax, esse conteudo vem em formato de texto. Texto puro. String só isso.

Javascripts não serão interpretados e nem executados.

 

oq você deve fazer, é deixar TODO o script na página já carregada, e depois de fazer o INSERT no html, executar as chamadas atrelando eventos ou chamando funções.

É oque eu explico aqui neste post:

 

http://wbruno.com.br/2011/08/22/usando-lightbox-em-pagina-carregada-ajax/

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, um amigo me indicou essa função aqui... mas nao estou sabendo usa-la. Você já viu ela antes ?

 

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);
               }
       }
}

 

Grata pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, eu já vi esse tipo de "técnica" e tentativa.

Eu pessoalmente não confio... eu faço da forma que eu te descrevi.

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, fiz como você indicou de colocar o javascript antes e chamar a função na div por html... testei com o comando

 

<a onclick="alert55();">Clique aqui...</a>

 

DEU CERTO!

 

Mas preciso que execute automatico quando a pagina for carregada na div tentei o comando

<body onload="load();">

 

NÃO DEU CERTO... mas esse comando no é HTML porque não funcionou?

Compartilhar este post


Link para o post
Compartilhar em outros sites

pq o evento não foi e nunca mais será disparado(neste instante).

 

o onload já aconteceu... e não voltará a acontecer, até você dar um F5 no browser.

para fazer isso ai, você tem q seguir a outra parte do que eu disse.

 

aqui é onde você insere a resposta do ajax no DOM:

xmlHttp_one.onreadystatechange=function(){
   if(xmlHttp_one.readyState==4){
     document.getElementById(divid).innerHTML=xmlHttp_one.responseText;
  }
}

 

 

logo depois disso, você executa a tua função:

 

xmlHttp_one.onreadystatechange=function(){
   if(xmlHttp_one.readyState==4){
     document.getElementById(divid).innerHTML=xmlHttp_one.responseText;
     load();
  }
}

Entendeu ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

William, entendo q tenho que acrescentar na minha ajax essa função:

load();

 

mas o que não estou entendendo é como vou disparar ela automática na pagina "carregador01.asp" quando ela é carregada na div ...

 

porque o que preciso é o seguinte quando a carregador01.asp for carregada dentro da div quero que redirecione p outra página... se usar o response.redirect ele carrega dentro da div e não quero isso, quero que vá para outra pagina asp. e a unica forma que sei colocar p ir p parent.main é por javascript por isso que tenho que fazer executar a minha função alert55(); automaticamente quando a div for carregada.

 

carregador01.asp

<html>
CARREGADOR 01
<%
response.write now()
%>
<div id="timediv1" onload="alert55();"> </div>

<a onclick="alert55();">Clique aqui...</a>

</html>

 

Grata pela atenção.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas o que não estou entendendo é como vou disparar ela automática na pagina "carregador01.asp" quando ela é carregada na div ...

o código que eu coloquei faz isso.

 

 

porque o que preciso é o seguinte quando a carregador01.asp for carregada dentro da div quero que redirecione p outra página...

hein?!

 

então pra que o ajax ????

 

 

por isso que tenho que fazer executar a minha função alert55();

nossa.. ta com uma baita cara de gambiarra isso ai.. vê direito esse fluxo.

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.