Ir para conteúdo

Arquivado

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

Álef W.

[Resolvido] Página dentro de div, ajax, problema ao atualizar...

Recommended Posts

Olha eu denovo tendo problemas com o ajax.....xD


Seguinte, eu uso ajax para carregar uma página dentro de uma div, funciona perfeitamente.
Mas um problema: Quando eu entro no site nenhuma página é carregada.
Solução: inserir no body "onload="abrirPag(son/home.html)"", funciona, porém, quando eu atualizo a página, supondo que esteja carregada outra página, volta à página inicial.
Gostaria de uma solução para só carregar a página inicial na primeira vez, e quando atualizar a página, recarregar a página que o usuário estava.


Site que o ajax está: www.lanchesdalua.com.br ou www.lanchesdalua.zxq.net

códigos ajax.js:
function GetXMLHttp() {
    var xmlHttp;
    try {
        xmlHttp = new XMLHttpRequest();
    }
    catch(ee) {
        try {
            xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch(e) {
            try {
                xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
            }
            catch(e) {
                xmlHttp = false;
            }
        }
    }
    return xmlHttp;
}

var xmlRequest = GetXMLHttp();

function abrirPag(valor){
    var url = valor;

    xmlRequest.open("GET",url,true);
    xmlRequest.onreadystatechange = mudancaEstado;
    xmlRequest.send(null);

        if (xmlRequest.readyState == 1) {
            document.getElementById("conteudo_mostrar").innerHTML = "<img src='loader.gif'>";
        }

    return url;
}

function mudancaEstado(){
    if (xmlRequest.readyState == 4){
        document.getElementById("conteudo_mostrar").innerHTML = xmlRequest.responseText;
    }
}
Desde já obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

tente trabalhar com cookies, ou alterando a URL, ai a cada requisição ajax, você altera a âncora da página..

 

#contato

#quem-somos

 

..

a idéia do cookie seria a mesma coisa, ficar sobrescrevendo um valor, para que você tivesse como 'lembrar' onde o usuario estava.

Compartilhar este post


Link para o post
Compartilhar em outros sites

POde me dar um exemplo de como fazer isso ?

Não tenho conhecimentos em ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade, ai é apenas javascript puro..

 

como essa tem sido uma dúvida recorrente, vou deixar um exemplo:

<html><head><script type="text/javascript">function id( el ){	return document.getElementById( el );}function pega_arq( url ){	var file = url.split('#');	return ( file[1] ) ? file[1]+'.html' : 'home.html';}function getHTTPObject(){	if(window.XMLHttpRequest){		return new XMLHttpRequest();	}else if(window.ActiveXObject){		var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];		for(var i = 0; i < prefixes.length; i++){			try	{				return new ActiveXObject(prefixes[i] + ".XMLHTTP");			} catch (e) {}		}	}}var xmlHttp = getHTTPObject();function abre( arq ){	xmlHttp.open("GET", arq,true);	xmlHttp.onreadystatechange = function(){		if (xmlHttp.readyState == 4){			id('content').innerHTML = xmlHttp.responseText;		}			}	xmlHttp.send( null );}window.onload = function(){	var as = document.getElementsByTagName('a');	for( var i=0; i<as.length; i++ ){		as[i].onclick = function(){			abre( pega_arq( this.href ) );		}	}	abre( pega_arq( document.location.href ) );}</script></head><body>		<a href="#contato">Contato</a>	<a href="#missao-valores">Missão, Valores</a>	<div id="content">	</div><!-- /content --></body></html>
veja a URL, vai mudar..

qndo você acessa:

localhost/ e ai abre a home.html, pois tem um if ternário que inseri, para testar se o split retornou algo.

localhost/#contato e ai abre o contato.html, e não acontece 'refresh' na página, pois estou alterando a URL do documento atual, trocando apenas após a #

 

Se você fechar o navegador, ou abrir outro, verá que graças a chamada que fiz:

abre( pega_arq( document.location.href ) );
abrirá na página que a # tiver marcando.

 

Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno, MUITO OBRIGADO!!!!!!

graças a você agora tenho uma réplica do iframe perfeita.

 

Eu acho que você deveria postar esse tutorial, tem muita gente que quer substituir os iframes, mas tem esse mesmo problema que tive.

 

Muito Obrigado.

Funcionou até mais rápido que o outro.

:joia: Imagem Postada :joia: Imagem Postada :joia: Imagem Postada :joia: Imagem Postada :joia: Imagem Postada :joia: Imagem Postada :joia: Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala galera!

sou novo aqui no forum e não manjo muito de ajax que não.

porem gostei muito desde script e vou implantar em meu site.

só tenho uma duvida.

Ex:

vamos supor que o pagina "contato.php" esteja na mesma que a index. Então fica <a href="#contato">

caso eu coloque esta página em outra pasta "php/contato.php" como devo chamar no href?

 

ME AJUDEM!

Compartilhar este post


Link para o post
Compartilhar em outros sites

intuitivo:

<a href="#php/contato">

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo acima funciona.

 

assim cara, pesquise.. estude..

se tiver dúvidas específicas, crie um tópico, e pergunte.

Compartilhar este post


Link para o post
Compartilhar em outros sites

mas William Bruno este script é o que eu estou precisando para implementar no meu site mais eu não manjo muito de ajax ai eu estou dependendo da sua boa vontade..

por favor você pode mandar um exemplo funcionando para meu e-mail?

"jadsonlucena@gmail.com"

agradecido...

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, o codigo acima funciona.

 

copia, cola num documento.html e roda pra ver.

não tenho muito oque fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara, não entendi a pergunta.

 

copia o código acima, cola num arquivo e executa.

tá tudo ai.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Compartilhar este post


Link para o post
Compartilhar em outros sites

Desculpe realmente ressucitar esse tódigo... mas gostaria de saber se é possível aplicar esse código do Willian Bruno em um menu em flash, já tentei de tudo e não consegui. Obrigado!

 

Segue parte do códígo no flash:

 

servicos_bt.onPress = function() {
getURL("??????????" "?????????")
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Opa!

 

cara, eu posso estar falando besteira, mas creio que você deva fazer o seguinte:

getURL("javascript:abre( '#contato' )");

 

e assim em diante, para cada item do menu.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Willian Bruno,

 

Se resolvo colocar um 'rollover image' ao invés de links com texto, a segunda parte do iframe (home.html no seu caso) não abre.

 

Como posso solucionar isso, usando o seu script e um script de rollover image ao mesmo tempo sem que um não interfira no outro?

 

Grato,

 

Edukator

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.