ďťż

[js/ajax/php]Zmiana zawartości pasku adresu bez przeładowania strony

       

Podstrony


telcocafe

Witam!
mam strone opartą na php+ajax. System działa na zasadzie ładowania do bloku div zawartości strony w zalezności od wybranego linku. W takim układzie strona działa szybko (nie przeładowywują się grfiki, flashe itd...), jednak jest jeden prioblem - linkowanie przez użytkowników - nie znienia się przeciez pasek adresu. czy jest jakaś możliwość zmiany wartości paska adresu bez przeładowania całej strony??
Z góry bardzo dziękuję za pomoc, i czekma na odpowiedź

link do strony: http://www.loprez.pl oczywiście nie chodzi mi o skrypty typu swfaddres, gdyż potrzebuję małego i prostego skryptu, bez zbędnych dodatków i udziwnień
Użytkownik piotr94 edytował ten post 26 marzec 2009, 12:28


Zwykle pomaga wujek. Jeśli jednak boisz się go zapytać, to ja Ci podpowiem. Widziałeś może mechanizm Gmail? Tam przechodząc między kolejnymi stronami, zmienia się adres etykiety (to po znaczku # w adresie strony). Przechodząc na jakąś stronę, po prostu zmieniaj etykietę strony. Jeśli użytkownik doda stronę do zakładek, a następnie ją wczyta, Ty tylko pobierz etykietę i "zaprowadź" użytkownika w wybrane miejsce. Coś niezrozumiałego? :-)

oki, wielkie dzięki.
mogłem o tym wcześniej pomyśleć i przyznaję że nie przeszukałem googli zbyt dokładnie ;-P

Zrobiłem to tak:
funkcje ajax:
<script type="text/javascript"> if (window.XMLHttpRequest) { OAJAX = new XMLHttpRequest(); } else if (window.ActiveXObject) { OAJAX = new ActiveXObject("Microsoft.XMLHTTP"); } function laduj_strone(strona) { var tresc=document.getElementById('tresc'); var tresc_id = document.getElementById('tresc_id'); OAJAX.open("GET", 'http://server/get.php?get='+strona); OAJAX.onreadystatechange = function() { if (OAJAX.readyState == 4) { tresc.innerHTML=OAJAX.responseText; window.location.href='#'+strona; //zmieniamy id # strony } if (OAJAX.readyState != 4) { tresc.innerHTML='<center><img src="grafika/waiting.gif" border="0"><br>Ładowanie zawartoÂści - proszę czekać...</center>'; tresc_id.name=strona; } } OAJAX.send(null); if(OAJAX){ return false; }else{ return true; } } </script>
treść strony umieszczamy tutaj:
<a id="tresc_id" name=""></a> <div id="tresc"></div> <!--a zaraz poniżej ładujemy stronę, jeśli nastąpiło bezpośrednie wejście z wywołanym znacznikiem #....--> <script type="text/javascript"> var link_value= new String(window.location).split('#'); //alert(link_value[1]); if(link_value[1]){ laduj_strone(link_value[1]); } </script>
Dzięki wszystkim za pomoc.
Temat pozostawiam dla potomnych z rozwiązaniem ;-)
Użytkownik piotr94 edytował ten post 31 marzec 2009, 16:28
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • nvm.keep.pl

  • Sitedesign by AltusUmbrae.