Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
tenho um pop-uop com varias abas, ao clicar em uma aba um ajax é executado para retornar os dados do banco. Mas uma das abas retorna um comando de executar outro ajax. E isso nao está funcionando.
é possivel ajax dentro de ajax?
alí pinado, tem alguns que tentaram resolver esse problema.. de executar javascript carregado com ajax:
eu sugiro não trazer código javascript com ajax.
já deixe tudo oque for precisar na página que foi previamente carregada.
maravilha hein, a função magica funcionou. obrigada aos dois em especial William pelo link
ptz é só elogiar... no IE 6 não funciona. coloquei eval em tudo que é possivel. alguem tem alguma sugestao?
exemplo do que estou fazendo e não funcionando no IE (6)
ajax.js
var xmlHttp
function loadAjax(pagina, container)
{
xmlHttp=GetXmlHttpObject()
if (xmlHttp==null)
{
alert ("Este browser não suporta HTTP Request")
return
}
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById(container).innerHTML=xmlHttp.responseText
}
newTag(container)
}
xmlHttp.open("GET",pagina,true)
xmlHttp.send(null)
}
function GetXmlHttpObject()
{
var objXMLHttp=null
if (window.XMLHttpRequest) objXMLHttp=new XMLHttpRequest()
}
else if (window.ActiveXObject) objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP")
}
return objXMLHttp
}
function newTag(local)
{
var conteudo = document.getElementById(local);
var newElement = document.createElement("script");
var scripts = conteudo.getElementsByTagName("script");
for (var i = 0; i < scripts.length; i++) {
newElement.text = scripts[i].innerHTML;
}
conteudo.appendChild(newElement);
}<script src="ajax.js"></script>
<script>
loadAjax('pagina_include.html','container_pai');
</script>
<div id="container_pai"></div>
pagina_include.html
<script src="ajax.js"></script>
<script>
loadAjax('pagina3.html','container_filho');
</script>
pagina nivel 2
<div id="container_filho"></div>
pagina3.html
pagina nivel 3
Tente assim:
function GetXmlHttpObject(){
//cria o objeto XMLxmlHttpRequest pra Firefox, Chrome, Opera, Safari, etc.
try {
return new XMLHttpRequest();
}
//cria o objeto XMLHttpRequest pra IE 6.0 e posteriormente para IE7+
catch (e) {
try {
return new ActiveXObject('Msxml2.XMLHTTP');
}
catch (e) {
return new ActiveXObject('Microsoft.XMLHTTP');
}
}
};rick tb nao funcionou =/
tudo que eu coloco de javascript, sem usar ajax, no pagina_include ele ignora
acho que descobri o problema. Primeira coisa, eu criei um exemplo errado pois nao se poe o load do ajax antes do objeto chamado. ok, mas mesmo tirando isso o meu codigo continuava com problema.
1º coisa: mudei o lugar da chamada da funcao newTag:
xmlHttp.onreadystatechange=function()
{
if (xmlHttp.readyState==4 || xmlHttp.readyState=="complete")
{
document.getElementById(container).innerHTML=xmlHttp.responseText
newTag(container)
}
}
xmlHttp.open("GET",pagina,true)
xmlHttp.send(null)
}
2º coisa, no arquivo pagina_include precisa ter algum texto, usei o BR pq nao tinha o que colocar. Nao entendi muito bem o por que mas deduzo que é pra ter algo pra atachar e nao ficar nulo (?!) de qualquer forma, consegui o resultado no IE
Pesquise por eval()