Ir para conteúdo

Arquivado

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

Gastro

Ler função JS "trazida" via AJAX

Recommended Posts

Beleza então, pessoalto pensando em fazer algo simplão, pra que não tenhamos que fazer manuais ultra extensos.Se possível NÃO mexermos com linguagens server-side, fazermos este framework apenas no JS mesmo.Juntamos as funções que fizemos, de ajax, de validação de campos (email, cpf, etc), de janelas flutuantes, e daí colocamos em arquivos de classes e colocamos aqui no fórum.O que acham da idéia? Postem comentários aí pragente poder iniciar...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso simplao mesmo..

sem nem precisar estanciar.. ta ligado...

hehe..

 

tipo como o prototype aquele framework trabalha..

trabalho assim no meu framework pessoal.

 

tipo.

 

var conexao {	  target   : "",						   // Onde deverá abrir o conteudo.	  modo   : true,						// Ajax asynchronous [true / false]	  param  : null,						// Paramentros ou dados para o ajax.}

depois so usar direto..

 conexao.target = "pagina.php";

que achao??

Compartilhar este post


Link para o post
Compartilhar em outros sites

galera, a ideia é super show de bola...

mas, eu to com um grande problema...

 

funciona show no FireFox, mas no IE nao funciona... =/

tipo, eu nao sei prq, mas se eu coloco um alert de qq coisa, antes de passar o codigo pro obj, no IE funciona... se eu nao colocar este alert, nao funciona de jeito nenhum... =/

 

tipo:

alert(1)objScript.src  = codigo;

só funciona no IE se eu colocar esse alert ae, se eu nao colocar, ele da um erro dizendo que nao encontrou a função que eu to chamando... =(((((!!!!

 

como eu soluciono isso???

 

valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui ^^só dar um setTimeout rsssprq a m***** do IE executa a p**** toda e nao tá nem ai se o outro bloco terminou :P, o FF nao, ele executa bloco a bloco...com setTimeout resolveu meu problema ^^valeu galera!

Compartilhar este post


Link para o post
Compartilhar em outros sites

consegui ^^só dar um setTimeout rsssprq a m***** do IE executa a p**** toda e nao tá nem ai se o outro bloco terminou :P, o FF nao, ele executa bloco a bloco...com setTimeout resolveu meu problema ^^valeu galera!

setTimeout onde exatamente!?Estou com o mesmo problema no IE!

Compartilhar este post


Link para o post
Compartilhar em outros sites

setTimeout onde exatamente!?Estou com o mesmo problema no IE!

Resolvi-me!Pra quem quiser se livrar dessa problema de vez siga a seguinte fórmula:
// ***** página requisitada em Ajax trás o seguinte código:...<script src="repositorio.js"></script>...<script>// não funciona no IE!  qualquerFuncao();  qualquerCodigo();</script>...// ***** mudar para:...<script src="repositorio.js"></script>...<img src="img/loader.gif" onLoad="java script: qualquerFuncao();qualquerCodigo();" />...
Assim funcionou 100%, me parece que dessa forma o scopo dos objetos fica global, sei lá. O código JavaScript do src="repositorio.js" é carregado corretamente no IE pelo script discutido nesse fórum. No meu caso, a parte de validação "objScript.text" foi subistituida pelo onLoad da imagem!Lembrei dessa "manha" da época que desenvolvia com iframes :)Pelo que vi no FireBug o Gmail usa essa mesma técnica.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na minha versão coloquei um "var function" dentro da função XMLHttpRequest()

 

Minha versão para o script discutido aqui:

 

var frwScriptEval = function(texto) {	var ini, pos_src, fim, codigo;	var objscript = null;	var scriptOnLoad = "";		ini = texto.indexOf('<script', 0)		while (ini != -1){			objscript = document.createElement("script");		//Busca se tem algum src a partir do inicio do script		pos_src = texto.indexOf(' src', ini)		ini = texto.indexOf('>', ini) + 1;		//Verifica se este e um bloco de script ou include para um arquivo de scripts		if (pos_src < ini && pos_src >= 0){//Se encontrou um "src" dentro da tag script, esta e um include de um arquivo script			//Marca como sendo o inicio do nome do arquivo para depois do src			ini = pos_src + 4;			//Procura pelo ponto do nome da extencao do arquivo e marca para depois dele			fim = texto.indexOf('.', ini)+4;			//Pega o nome do arquivo			codigo = texto.substring(ini,fim);			//Elimina do nome do arquivo os caracteres que possam ter sido pegos por engano			codigo = codigo.replace("=","").replace(" ","").replace("\"","").replace("\"","").replace("\'","").replace("\'","").replace(">","");			// Adiciona o arquivo de script ao objeto que sera adicionado ao documento			objscript.src = codigo;		} else { //Se nao encontrou um "src" dentro da tag script, esta e um bloco de codigo script			// Procura o final do script			fim = texto.indexOf('</script>', ini);			// Extrai apenas o script			codigo = texto.substring(ini,fim);			// Adiciona o bloco de script ao objeto que sera adicionado ao documento			// NÃO FUNCIONA NO IE!!!			// objscript.text = codigo;			// Mudança: Acumulador de scripts a serem executados no onLoad			scriptOnLoad += codigo.replace(/\n/g,"");		}		//Adiciona o script ao documento		document.body.appendChild(objscript);		// Procura a proxima tag de <script		ini = texto.indexOf('<script', fim);				//Limpa o objeto de script		objscript = null;	}		if (scriptOnLoad != "") {		texto += "\n<img class=\"loader\" src=\"img/loader.gif\" onLoad=\"java script:" + scriptOnLoad + "\" />";	}		return texto;}

No retorno Ajax usar:

...document.getElementById(objId).innerHTML = frwScriptEval(httpReq.responseText);...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problemas em cima de problemas no IE!Agora estou com o seguinte erro:Após carregar qualquer coisa em Ajax com a função acima não posso recarregar a página toda.O IE acusa como "Operação Inválida!"Alguém já teve esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Talvez isso ajude...

 

var objetos = '';function jsExterno(){	// Esta função pode receber quantos argumentos forem necessários.	if (!document.getElementById) {		return;	}	// Para cada argumento, executa uma verificação	for (i = 0; i < arguments.length; i++) {		var arquivo = arguments[i];		var ref = '';		// Primeiro checa se o objeto já não está na página		if (objetos.indexOf(file) == -1) {			if (arquivo.indexOf('.js') != -1) { 				ref = document.createElement('script');				ref.setAttribute('type','text/javascript');				ref.setAttribute('src', arquivo);			}			else {				return 'O arquivo não é JavaScript';			}		}		if (fileref != '') {			document.getElementsByTagName('head').item(0).appendChild(ref);			// Guardar que esse objeto já foi adicionado			objetos += arquivo + ' ';		}	}}

Compartilhar este post


Link para o post
Compartilhar em outros sites

olá, estou carregando as paginas com ajax, tem alguma maneira de eu conseguir carregar imagens atraves da lightWindow???

estou chamando os javascripts na principal, o problema é que abaixo de cada [ver imagem], preciso chamar a funçao:

 

<script> mylightWindow.initializeWindow('sample-link1'); </script>

tentei qse tudo postado ae, porém até agora não consegui....

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.