Ir para conteúdo

POWERED BY:

Arquivado

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

Nuno Amaral

Carregar JavaScript no Ajax

Recommended Posts

Tenho um site com carregamento dinamico em Ajax.

 

O Problema é que as paginas que abrem não executam JavaScript.

 

Alguem me pode ajudar?

 

 

O meu ficheiro Ajax é este:

 

function openAjax() {var ajax;try{	ajax = new XMLHttpRequest(); // XMLHttpRequest para browsers, como: Firefox, Safari, entre outros.}catch(ee){	try{		ajax = new ActiveXObject("Msxml2.XMLHTTP"); // Para o IE da MS	}catch(e){		try{			ajax = new ActiveXObject("Microsoft.XMLHTTP"); // Para o IE da MS		}catch(E){			ajax = false;		}	}}return ajax;}function carrega(link,div) {	if(link==undefined){		link="'" + link + "'";	}	var camada = document.getElementById(div); //	var ajax = openAjax(); // Inicia o Ajax.		ajax.open("GET",link,true); 		ajax.onreadystatechange = function() {			if(ajax.readyState == 1) { // Quando estiver carregando, exibe: carregando...			camada.innerHTML = '<div class="carregando" class="texto"><br><font face="verdana" size="2" color="#666666">    Carregando conteudos...</font></div>';		}		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				camada.innerHTML = resultado;			}else {				camada.innerHTML = "Erro: ";			}		}	}	ajax.send(null); // submete}

O link para abrir as páginas é este:

 

<a href="#" onclick="carrega('empresa.html','conteudo')">EMPRESA</a>

 

 

 

Ajudem-me a resolver este problema.

 

Obrigado

Nuno Amaral

Compartilhar este post


Link para o post
Compartilhar em outros sites

:D Ja encontrei uma forma muito melhor das que há aqui no fórum.

 

Muito simples e pouco código. Carrega .js e .css

 

Se alguém Quiser é só dizer.

 

 

Aqui está o código Ajax.js:

 

var loadedobjects=""var rootdomain="http://"+window.location.hostnamefunction ajaxpage(url, containerid){var page_request = falseif (window.XMLHttpRequest) // if Mozilla, Safari etcpage_request = new XMLHttpRequest()else if (window.ActiveXObject){ // if IEtry {page_request = new ActiveXObject("Msxml2.XMLHTTP")} catch (e){try{page_request = new ActiveXObject("Microsoft.XMLHTTP")}catch (e){}}}elsereturn falsepage_request.onreadystatechange=function(){loadpage(page_request, containerid)}page_request.open('GET', url, true)page_request.send(null)}function loadpage(page_request, containerid){if (page_request.readyState == 4 && (page_request.status==200 || window.location.href.indexOf("http")==-1))document.getElementById(containerid).innerHTML=page_request.responseText}function loadobjs(){if (!document.getElementById)returnfor (i=0; i<arguments.length; i++){var file=arguments[i]var fileref=""if (loadedobjects.indexOf(file)==-1){ //Check to see if this object has not already been added to page before proceedingif (file.indexOf(".js")!=-1){ //If object is a js filefileref=document.createElement('script')fileref.setAttribute("type","text/javascript");fileref.setAttribute("src", file);}else if (file.indexOf(".css")!=-1){ //If object is a css filefileref=document.createElement("link")fileref.setAttribute("rel", "stylesheet");fileref.setAttribute("type", "text/css");fileref.setAttribute("href", file);}}if (fileref!=""){document.getElementsByTagName("head").item(0).appendChild(fileref)loadedobjects+=file+" " //Remember this object as being already added to page}}}

Para o link coloquem:

 

<a href="#" onclick="ajaxpage('contactos.html','conteudo'); loadobjs('funcoes.js', 'estilos.css')">CONTACTOS</a>

Como vêm é simples.

 

Dêem os vossos comentários. Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu comentário:Se voce leu e entendeu este script que voce colocou aí, deve ter percebido que ele NÃO CARREGA SCRIPTS ENVIADOS PELO AJAX, e simplesmente carrega scripts definidos MANUALMENTE por voce.Perceba que voce teve que definir manualmente qual script voce queria carregar e não os que possivelmente haveriam dentro de sua página que foi carregada pelo ajax.A função que skywalker, eu e pita desenvolvemos carrega os scripts que estejam dentro de um arquivo que será carregado por ajax. Entendeu??Leia ae e entenda e verá que eu tenho razão.

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.