Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [js] Zmiana adresu strony bez przeładowania strony
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
propage
Chciałbym zmienić adres stron w przeglądarce, ale bez przeładowania tej strony.

Zastosowanie "window.location.href = "http:/..." powoduje przeładowanie strony.

Jest mi to potrzebne do ajaxa - chce zrobić stronę od początku do końca w ajaxie, ale chce, aby adres url zmieniał się, tak aby klient mógł ewentualnie skopiować sobie ten adres w razie potrzeby.
kamil4u
Chyba się nie da. Musisz operować na .... Nie znam profesjonalnej nazwy, więc podam przykład: www.strona.pl/index.html#[tą część zmieniasz] (czyli po #)Wtedy strona nie zostanie przeładowana

EDIT: @down: właśnie - kotwica! smile.gif
#luq
No jasne, że się nie da.
Możesz operować na kotwicach (tak jak mówi @kamil4u) ale też możesz robić directory link, np. jak na maps.google.com w górnym rogu mapy - "LINK"
propage
hm to chyba najprościej problem rozwiązać tak:

zamiast np adresu
http://domena.pl/Dla-kobiet/
wstawić
http://domena.pl/#/Dla-kobiet/
a gdy ktoś otworzy adres
http://domena.pl/#/Dla-kobiet/
zrobić redirect w modrewrite do
http://domena.pl/Dla-kobiet/

a teraz małę pytanie, jak powinna wyglądać taka reguła w modrewrite, bo z tego jestem słaby.
flashdev
Cytat(propage @ 5.09.2010, 14:59:56 ) *
hm to chyba najprościej problem rozwiązać tak:

zamiast np adresu
http://domena.pl/Dla-kobiet/
wstawić
http://domena.pl/#/Dla-kobiet/
a gdy ktoś otworzy adres
http://domena.pl/#/Dla-kobiet/
zrobić redirect w modrewrite do
http://domena.pl/Dla-kobiet/

a teraz małę pytanie, jak powinna wyglądać taka reguła w modrewrite, bo z tego jestem słaby.


Nie zadziała. Przeglądarka nie wysyła kotwicy na serwer. Ale możesz wykonać przekierowanie z poziomu js.
propage
ok, już do tego doszedłem, a ma ktoś linki do stron (W całości w ajaxie) wykorzystujących podobne techniki?
Mając na myśli podobne techniki mam na myśli wszystkie triki/sposoby, aby mimo to, iż strona jest w całośći na ajaxie, to jak najmniej traci na użytecznosci (użytkonik i seo)
sebekzosw
z mojej strony tyle:

robisz plik np.: index.html a w nim robisz funkcję:

  1. <script type="text/javascript">
  2. $(function()
  3. {
  4. $('a').click(function()
  5. {
  6. document.location = '#/' + $(this).attr('href');;
  7. var url = new String(document.location)
  8. var page = url.split("#");
  9. if(typeof(page[1]) != 'undefined')
  10. {
  11. //tutaj mozesz zrobić ładowanie podstrony w tle. Funkcja poniżej otworzy strone www.spisula.pl/podstrona.html
  12. //window.open('http://spisula.pl/' + page[1], '_top');
  13. }
  14. return false;
  15. });
  16. });


oraz odnośnik:

  1. <a href="portfolio.html">Portfolio</a>


to jest w jQuery... w meta trzeba dodać:

  1. <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.js"></script>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.