Ir para conteúdo

POWERED BY:

Arquivado

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

Gastro

trazer codigo javascript

Recommended Posts

Estive procurando no forum algo que atenda meu problema mas nada encontrei...

 

Tenho o seguinte código

 

<STYLE type=text/css>#divLoadCont{	 position:absolute; 	 left:487px;	 top:69px;	 width:200; 	 z-index:1;}</STYLE><script type="text/javascript" language="javascript">function hideIt(){	document.getElementById('divLoadCont').style.display = 'none';}	var http_request = false;		function mlAtua(url, sessao, act, parameters) {	document.getElementById('divLoadCont').style.display = 'block';	 sess = sessao;		http_request = false;		if (window.XMLHttpRequest) { // Mozilla, Safari,...			http_request = new XMLHttpRequest();			if (http_request.overrideMimeType) {				http_request.overrideMimeType('text/xml');				// See note below about this line			}		} else if (window.ActiveXObject) { // IE			try {				http_request = new ActiveXObject("Msxml2.XMLHTTP");			} catch (e) {				try {					http_request = new ActiveXObject("Microsoft.XMLHTTP");				} catch (e) {}			}		}		if (!http_request) {			alert('Não foi possivel criar o exemplo de XMLHTTP, feche o navegador e entre novamente, ou troque de navegador. ');			return false;		}				http_request.onreadystatechange = alertContents;				http_request.open('GET', url, true);				http_request.send(null);	}	function alertContents() {		if (http_request.readyState == 4) {			if (http_request.status == 200) {					div = document.getElementById('infoPia');					div.innerHTML = http_request.responseText;				document.getElementById('divLoadCont').style.display = 'none';			} else {				alert('Houve um problema com a solicitação, feche o navegador e entre novamente! Ou troque de navegador.');			}		}	}</script><body onLoad="return hideIt()"><div id="divLoadCont"><FONT color="#000000" FACE="Verdana" SIZE="2"><img src="loading.gif" border="0"><B>Carregando...</B></FONT></div><a href="#" onClick="mlAtua('mural_apre_todos.php', 'c')">Mural</a>   <a href="#" onClick="mlAtua('piad_index.php', 'c')">Piadas</a><div id="info"></div></p>
Podem ver pelo link que eu chamo um arquivo php, esse codigo ai le o arquivo php e me apresenta o resultado...

o problema é que tudo que está nas tags <script> ele não traz, então teoricamente eu tenho que colocar tudo que é validação e JS junto ao codigo acima... é isso que não quero...

então pergunto

tem como "trazer" este codigo JS que está nos arquivos que indico nos links ?

 

eu não sou muito peco em AJAX... dai se puder me dar uma mão...

valeuu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, use a busca. Já tem muita resposta sobre isso aqui no fórum.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, use a busca. Já tem muita resposta sobre isso aqui no fórum.

Já procurei um monte... mas nada que funcione ali... ou seja claro... só se as palavras usadas são diferentes de "código javascript""ler codigo javascript""trazer javascript"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um exempro simples...se num arquivo que chamdo ali pelo link tiver a tag<body onload="alert()">ao ler ele não da o alert nada.... me ajuda ai=)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, ao usar xmlHttpRequest, subentende-se que a página já foi carregada. Ou seja, o body principal já passou pelo seu onload.Então um novo código que seja gerado de qualquer forma e que tenha load, não terá efeito (ou terá alguns bugs como efeito), pois o browser deve IGNORAR este novo body fora de contexto.Vou pesquisar aqui sobre o script dentro de ajax e já posto. Realmente tá difícil achar aqui no fórum. O sistema de busca não tá ajudando não.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só pra melhorar o entendimentoassim... o exemplo do onload foi um ex infeliz... deixa eu explicar melhorno arquivo que eu leio via ajax... eu tenho uma funçãoesta função controla o preenchimento de inputs do proprio arquivo que li... se coloco essa função no index.. junto ao codigo que carrega o arquivo belezma... porem quando leio a função via o ajax ela vira string eu acho e dai não faz nada :/

Compartilhar este post


Link para o post
Compartilhar em outros sites

Beleza. Eu entendi desde a primeira vez. Vou buscar uma solução e posto aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, é o seguinte.

 

O browser só irá interpretar códigos javascripts de eventos inline (os que são colocados direto no elemento como o do onclick etc). Códigos, funções javascript colocadas dentro de tag script ele não interpreta pois a página JÁ foi carregada e no momento do carregamento aquele código não existia pro browser poder colocar na memória.

 

A solução então é usar o eval.

 

O skywalker.to tá de parabéns... Fez uma função que resolve isso. Veja no post: http://forum.imasters.com.br/index.php?sho...0&gopid=547500&

Compartilhar este post


Link para o post
Compartilhar em outros sites

Micox... entendi o lançe.. mas ve se você entende o que tá acontecendo...

copia e executa o cod ai...

 

 

<STYLE type=text/css>#divLoadCont{	 position:absolute; 	 left:487px;	 top:69px;	 width:200; 	 z-index:1;}</STYLE><script type="text/javascript" language="javascript">function hideIt(){	document.getElementById('divLoadCont').style.display = 'none';}	var http_request = false;		function mlAtua(url, sessao, act, parameters) {	document.getElementById('divLoadCont').style.display = 'block';	 sess = sessao;		http_request = false;		if (window.XMLHttpRequest) { // Mozilla, Safari,...			http_request = new XMLHttpRequest();			if (http_request.overrideMimeType) {				http_request.overrideMimeType('text/xml');				// See note below about this line			}		} else if (window.ActiveXObject) { // IE			try {				http_request = new ActiveXObject("Msxml2.XMLHTTP");			} catch (e) {				try {					http_request = new ActiveXObject("Microsoft.XMLHTTP");				} catch (e) {}			}		}		if (!http_request) {			alert('Não foi possivel criar o exemplo de XMLHTTP, feche o navegador e entre novamente, ou troque de navegador. ');			return false;		}		http_request.onreadystatechange = alertContents;			if(act == "post"){				http_request.open('POST', url, true);				http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");				http_request.setRequestHeader("Content-length", parameters.length);				http_request.setRequestHeader("Connection", "close");				http_request.send(parameters);			}else{				http_request.open('GET', url, true);				http_request.send(null);			}				}	function alertContents() {		if (http_request.readyState == 4) {			var texto = "";		   // coloca o valor no objeto requisitado			texto = unescape(http_request.responseText.replace(/\+/g," "));			alert(texto);//			document.getElementById(destino).innerHTML=texto;			// executa scripts			extraiScript(texto);						if (http_request.status == 200) {				if(sess == 'p'){					div = document.getElementById('infoPia');					div.innerHTML = http_request.responseText;				}				if(sess == 'msgSim'){					div = document.getElementById('msgSim');					div.innerHTML = http_request.responseText;					document.formMsg.de.focus();				}				if(sess == 'c'){					div = document.getElementById('info');					div.innerHTML = http_request.responseText;				}				document.getElementById('divLoadCont').style.display = 'none';			} else {				alert('Havia um problema com a solicitação, feche o navegador e entre novamente! Ou troque de navegador.');			}		}	}		function mlFecha(janela){			div = document.getElementById(janela);			div.innerHTML = "";		}	function get(obj, arquivo){		var arquivo = arquivo;		if(arquivo){			var poststr = "nome=" + encodeURI( document.getElementById("de").value ) +			"¶=" + encodeURI( document.getElementById("para").value ) +			"&mensagem=" + encodeURI( document.getElementById("mensagem").value );			mlAtua(arquivo, 'c', 'post', poststr);			mlAtua('mural_apre_todos.php', 'c');		}			}function extraiScript(texto){	// 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			alert();	//		eval(codigo);		}	}}</script><body onLoad="return hideIt()"><div id="divLoadCont"><FONT color="#000000" FACE="Verdana" SIZE="2"><img src="loading.gif" border="0"><B>Carregando...</B></FONT></div><a href="#" onClick="mlAtua('mural_apre_todos.php', 'c')">Mural</a>   <a href="#" onClick="mlAtua('piad_index.php', 'c')">Piadas</a>  <br><div id="info"></div></p>

ele imprime na tela parte da função "extraiScript" e da erro...

muuuuito estranho.... não vejo o que fiz de errado...

 

vlwww

Compartilhar este post


Link para o post
Compartilhar em outros sites

achei...

não sei pq diabos quando executo o index... onde tem a função que aplica o eval, ao ler a linha

var fim = texto.indexOf('</script>', ini);

ele fica meio loko e imprime na tela o resto da função...

então mudei para

 

var fim = texto.indexOf('<;;>', ini);

 

e no arquivo que leio onde vem a função coloco assim

<script>alert();//;;</script>
tá funcando... mas to tendo um problema com as funções..

<script>function jjj(){alert();}//;;</script>
tá dando um erro...

mas vou ver o que acho aqui... dai posto

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha só... ve se deve funcionar assimeu to conseguindo pegar só a função.... e dou um eval nela...nesse momento jogo a função pra memória certo ?bemno meu arquivo lido e "trazido" pelo ajax tenho um link com onclick chamando essa função...quando executo ele da erro, falando que o objeto é esperado!tenho que fazer algo mais ?parece que ele não acha a função... mesmo eu dando um eval nela etc....

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.