Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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;
}POde me dar um exemplo de como fazer isso ?
Não tenho conhecimentos em ajax.
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.
/applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/happy.gif&key=d39e68bd94edabd9069b8f4a6d941163110d4d36d12e6324ad75ec83de4843df" alt="Imagem Postada" />
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: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" /> :joia: /applications/core/interface/imageproxy/imageproxy.php?img=http://forum.imasters.com.br/public/style_emoticons/default/laugh.gif&key=fb9a849ac525d2fd317adad061adf02e38bd5f5cb2c664d803c1667dd70a2af1" alt="Imagem Postada" />
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!
intuitivo:
<a href="#php/contato">
Amigo, agradeço pela ajuda!
funcionou perfeitamente! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif
eu gostaria que você botasse um exemplo deste código funcionando.. se for possível !
ou que você explicasse com mais clareza.
muito obrigado...
o codigo acima funciona.
assim cara, pesquise.. estude..
se tiver dúvidas específicas, crie um tópico, e pergunte.
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...
cara, o codigo acima funciona.
copia, cola num documento.html e roda pra ver.
não tenho muito oque fazer.
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...
cara, não entendi a pergunta.
copia o código acima, cola num arquivo e executa.
tá tudo ai.
WESLEY, continue postando neste tópico:
http://forum.imasters.com.br/index.php?/topic/418739-problemas-ajax-history/
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("??????????" "?????????")
}
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.
Cara você é simplesmente d++++++++++
Funcionou, com uma pequena correção:
getURL("javascript:abre('contato.html')");
William Bruno, muito boa a sua dica(!)
Sucesso.
Abs, Edukator
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
você precisa "entender" o motivo de não funcionar. leia:
http://wbruno.com.br/2011/08/22/usando-lightbox-em-pagina-carregada-ajax/
Ola pessoal, tudo bem?
Queria tirar uma duvida, é possivel eu passar parametros pela url, como por exemplo um codigo "produto.php?id=1" ???
Obrigado!
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 ^^
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:
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.
Obrigado
Esqueci de dizer, bxSlider está nas páginas de dicas.
o Cycle não ta linkado ainda...
Só postando pra avisar que acabei de conseguir faze-lo funcionar, refiz o jQuery usando o do seu site e funcionou, não sei o que fiz de diferente, já que fiz praticamente a mesma coisa de antes.
Obrigado W.Bruno.
tente trabalhar com cookies, ou alterando a URL, ai a cada requisição ajax, você altera a âncora da página..
a idéia do cookie seria a mesma coisa, ficar sobrescrevendo um valor, para que você tivesse como 'lembrar' onde o usuario estava.