Publicidade

Álef W.

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

Patrocínio:

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.
0

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.

0

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.

0

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

0

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

0

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!

0

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.

0

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...

0

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.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

OI William Bruno se não for muito incomodo você poderia me dar uma sintaxe do código para que eu compreenda melhor este script; porque eu estou precisando muito e este foi o único tópico que encontrei completo.

Agradecido...

0

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.

0

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("??????????" "?????????")
}

0

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.

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara você é simplesmente d++++++++++

 

Funcionou, com uma pequena correção:

 

getURL("javascript:abre('contato.html')");

Editado por William Bruno
Remover quote desnecessário
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

William Bruno, muito boa a sua dica(!)

 

Sucesso.

 

Abs, Edukator

0

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

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

você precisa "entender" o motivo de não funcionar. leia:

 

http://wbruno.com.br/2011/08/22/usando-lightbox-em-pagina-carregada-ajax/

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola pessoal, tudo bem?

 

Queria tirar uma duvida, é possivel eu passar parametros pela url, como por exemplo um codigo "produto.php?id=1" ???

 

Obrigado!

Editado por William Bruno
Remover quote desnecessário
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá,

 

Desculpe ressucitar o tópico, mas eu estava procurando como carregar uma DIV sem dar refresh na página e me deparei com esse tópico.

 

Eu utilizei seu código(Obrigado!!) e deu certo, funciona certinho, carrega as páginas e etc.

Mas meus outros scripts pararam de funcionar(bxSlider e Cycle) ja li vários links na internet sobre conflito com jQuery e não consegui resolver, talvez por que não funcionou mesmo, ou talvez por que usei errado...

 

Já li os artigos do site wbruno(que acredito ser o Willian Bruno daqui do forum), mas o script de la(que achei bem melhor e completo) não carrega aqui e a index fica em loop infinito...

 

Poderia me ajudar?

Desculpe pelo texto gigante ^^

0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas meus outros scripts pararam de funcionar(bxSlider e Cycle) ja li vários links na internet sobre conflito com jQuery e não consegui resolver,

é que não tem nada a ver com conflito mesmo, tem a ver com isso aqui:

 

http://wbruno.com.br/2011/08/22/usando-lightbox-em-pagina-carregada-ajax/

 

Já li os artigos do site wbruno(que acredito ser o Willian Bruno daqui do forum),

sim, sou eu mesmo.

 

 

mas o script de la(que achei bem melhor e completo) não carrega aqui e a index fica em loop infinito...

posta o link do teu site pra eu dar uma olhada :lol:
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Entendi... eu tinha lido isso no seu site, mas não achei como implementar no meu script...

 

O site está com o script que você postou aqui nesse tópico.

 

http://wjla.com.br

 

 

Obrigado

 

Esqueci de dizer, bxSlider está nas páginas de dicas.

o Cycle não ta linkado ainda...

Editado por ByBlener
0

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!


Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.


Entrar Agora