Ir para conteúdo

POWERED BY:

Arquivado

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

THE_WATCHER

Debugger do IE vs. Ajax

Recommended Posts

Fala povo!Estou com um problemão... o conteúdo de um arquivo HTML (parte1) é carregado em um div (conteudo)... mas eu preciso que dentro deste div execute um js.Se eu colocar no body onload do HTML principal (index) não funfa, pois o ajax não recarrega a página.Tentei no Ajax e deu certo, mas o problema mesmo é que o debugger do IE acusa como um erro, pois a camada não existe no Index, apenas no Parte1.Pois no js tem "document.getElementById('conteudo').onload = funcao();" e nesta funcao() ele cita divs que só existem no arquivo Parte1... então dá um erro de "Objeto Necessário".Putz, não consigo explicar direito... mas o fato é que o debugger do IE acusa um erro que não existe!Tem um jeito de fazê-lo não acusar este "erro"?PS: Agora que eu vi que já tem um sub-forum de Ajax... se algum modera puder, mova-o para lá

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acho que não dá para omitir erros...

Mas tente algo assim:

try { lalala.divInterna.comando = lalala;} catch (e) { void(0);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

É.. o void não reolveu..

 

O problema não é necessariamente omitir o erro... mas uma forma de executar o javascript sem dar este erro...

 

O ajax está assim:

if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200))	document.getElementById("conteudo").innerHTML =xmlhttp.responseText;	document.getElementById("conteudo").onload = funcao();

Mas a função que executa quando o conteúdo é carregado contém um getElementByID("div") cujo div não existe no index, apenas no html do conteúdo...

Compartilhar este post


Link para o post
Compartilhar em outros sites

funcao(); está declarada onde? no index ou html carregado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ou então um jeito de colocar o onload em algum lugar do html Conteudo, já que o body onload não funfa...No <head> do index...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não sei se vai funcionar mas vamos tentar né!? Afinal o assunto é novo pra todo mundo aqui.

Na sua página trazida pelo AJAX, coloca assim no final do código:

<script>funcao();</script>

No seu código AJAX. você modifica:

if(ajax.readyState == 4) { // Quando estiver tudo pronto.				if(ajax.status == 200) {					var resultado = ajax.responseText; // Coloca o resultado (da busca) retornado pelo Ajax nessa variável (var resultado).					resultado = resultado.replace(/\+/g," "); // Resolve o problema dos acentos 					resultado = unescape(resultado); // Resolve o problema dos acentos					tag = 'script';					initSub = resultado.indexOf('<'+tag+'>');					initTagLen = tag.length+2;					finiSub = resultado.indexOf('</'+tag+'>');					myScript = resultado.substring(initSub+initTagLen,finiSub);					eval(myScript);					document.getElementById('minhaDiv').innerHTML = resultado.substring(0,initSub);				} else {					document.getElementById('minhaDiv').innerHTML = "Erro: ";				}			}

Faça a adaptação do nome da div.

Compartilhar este post


Link para o post
Compartilhar em outros sites

E aí Fleury.Infelizmente não deu certo... mas agradeço sua boa vontade.Consegui fazendo uma gambiarra... o problema era o seguinte: o debugger do IE acusa um erro de "Objeto Necessário", porque a função citava uma div que só existia no arquivo do conteúdo, e não no index.O que eu fiz foi colocar este div no Index e ocultá-lo.Gambiarra... mas foi a única solução para este bug...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Atualmente estamos trabalhando com pgs onde até 3 divs são sobrepostos, sendo todos em ajax, com pesquisa de dados, inserção, sem reflesh algum.Todos os JS devem ficar na pg principal. Os div chamam as funções inclusas nesta pg. Uilizamos o Cpaint.Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado pela diga... mas o problema não é executar os javascripts que estão na página principal, isso está funcionando perfeitamente!O problema não é nada relacionado a funcionalidade, é só um caso de interpretação dos debuggers.

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.