Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Dodanie wartości do location bez przeładowania
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
Kildyt
Cześć!

Ostatnio bawię się w jQuery. Mam pomysł, aby pewną część strony pozostawić nieruchomą, a operować dzięki AJAX-owi na tej, która będzie się zmieniać dynamiczne po kliknięciu na link. Wszystko jest ok, ale mam problem. Chciałbym aby po kliknięciu na link był widoczny owy adres w pasku adresu (window.location), aby móc ewentualnie wrócić na niego i zobaczyć stronę w całej okazałości.
Problem mam właśnie z tym aby ten adres zmienić, ale nie wywoływać reakcji (tzn. przeładowania strony). Proszę o pomoc, lub ew. jakieś inne koncepcje.
sowiq
http://nix.lv/history/demo.html

Google -> jQuery history
Kildyt
Myślałem o kotwicach, ale ten sposób raczej odpada bo:
- czytałem, że niektóre wyszukiwarki nie biorą ich pod uwagę,
- niektóre serwisy ucinają je w linkach.

Zależy mi na pełnej kompatybilności ponieważ chcę użyć tej metody na całej stronie.
sowiq
Cytat(Kildyt @ 15.07.2009, 21:37:05 ) *
czytałem, że niektóre wyszukiwarki nie biorą ich pod uwagę,
I na to znajdzie się sposób:
  1. <a onclick="window.location.href = window.location.toString() + '#rozdzial-10'; return false;" href="./rozdzial-10.html">Rozdział 10</a>
Do tego oczywiście mała modyfikacja, żeby nie powielało kotwic w adresie.

AFAIK, nie da się ustawić nowego adresu okna bez przeładowania strony (poza kotwicą).
Kildyt
Ok, zaczynam kumać.
Jak już pisałem chciałbym działać w obrębie całej strony, więc będzie się zmieniać dużo parametrów. Chciałbym kolejne wartości w kotwicy (oddzielone przecinkami) jakoś przerobić w mod_rewrite. Dla przykładu: #home stanie się: ?page=home.
Próbowałem dodać # w wyrażeniu ale nie działa. Nawet jest to logiczne, ponieważ kotwice to nie działka dla serwera, ale przeglądarki. Więc, czy php zwraca również kotwice? Głupek ze mnie. biggrin.gif Pewnie, że nie.
sowiq
Cytat(Kildyt @ 15.07.2009, 21:51:21 ) *
Próbowałem dodać # w wyrażeniu ale nie działa.
# to komentarz. To jakbyś dał // echo 'test'; w PHP winksmiley.jpg

Cytat(Kildyt @ 15.07.2009, 21:51:21 ) *
Nawet jest to logiczne, ponieważ kotwice to nie działka dla serwera, ale przeglądarki.
Dokładnie tak, jak napisałeś.
Kildyt
Cytat(sowiq @ 15.07.2009, 21:57:54 ) *
# to komentarz. To jakbyś dał // echo 'test'; w PHP winksmiley.jpg

Dokładnie tak, jak napisałeś.

Użyłem slasha, aby wiedział, że chodzi mi o konkretny znak i dalej to samo. On po prostu nie dostaje takich informacji, a tak przynajmniej mi się wydaje.

Skoro kotwice to nie sprawa serwera, to trzeba się zająć stroną klienta. Na szczęście jest window.location. Napiszę sobie funkcję, która wyciągnie js-em kotwice, a PHP przerobi je sobie na GET-y.

Oczywiście "pomógł" dla sowiq-a. Dzięki! winksmiley.jpg
erix
A po co wyciągać kotwicę, jak obiekt window.location jest tak rozbudowany, o wtyczce do jQuery nie wspomnę. [;
Kildyt
Cytat(erix @ 15.07.2009, 22:05:12 ) *
A po co wyciągać kotwicę, jak obiekt window.location jest tak rozbudowany, o wtyczce do jQuery nie wspomnę. [;
Wiem o location.hash jeżeli o to ci chodzi.

Nie będę zaśmiecał kodu przez onclick-a w każdym linku. W jQuery dodam sobie ten parametr.
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.