Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP?][JavaScript][HTML] Wykonywanie funkcji, "przyszłej" z innej strony.
Forum PHP.pl > Forum > Przedszkole
thomson89
Witam!

Tworząc powoli swoją stronę www, natknąłem się na problem. Posiadam stronę tresc.php na której jest moja strona. Tresc na niej jest ładowana dynamicznie (js). Klikając na o mnie, wykonuje funkcje innerHTML i zmieniam treść na "o mnie". Problem pojawia się gdy chcę ze strony index.php od razu przeskoczyć do "o mnie" na tresc.php. Nie mam pojęcia jak to zrobić, aby js wiedział co kliknąłem na poprzedniej stronie i to robił co tam mu powiedziałem. Myślałem o prostym dołączeniu do funkcji init() wiersza z funkcją która pokaże "o mnie". Ale stosując pewne zasady, js mam w osobnym pliku. Innym sposobem było by też wykonanie skryptu js w index.php, ale to trochę bez sensu...

Więc mam do Was pytanie. Jak mam to zorbić? To jest trochę, jak pobieranie zmiennej z linku bez tej zmiennej...

Prosze o pomoc!
paw-e-l
mógłbyś do linka na stronie index.php dodać #cośtam np
  1. <a href="tresc.php#omnie">link do omnie</a>


teraz tylko po załadowaniu strony tresc.php, za pomocą js sprawdzasz czy w adresie dokumentu (location.hash) znajduje się '#omnie', jeśli tak to wykonujesz tę samą funkcję co przy 'normalnym' kliknięciu w 'o mnie' na tresc.php
thomson89
a mam jeszcze pytanie, czy można stosować dwa takie hashe?

  1. <a href="tresc.php#gora#omnie">Kliknij</a>
paw-e-l
chyba można. najlepiej sprawdź w praktyce.
vokiel
Logicznie rozumując nie można. Link, czy to z hashem czy nie musi wskazywać jednoznacznie na element do którego odnosi. Teraz jak masz 2 hashe, to skąd przeglądarka ma wiedzieć gdzie przewinąć stronę?
paw-e-l
javascriptowe location.hash wyciąga wszystkie hashe czyli można bez problemu i wykonać jakąś funkcje i przewinąć stronę np za pomocą scrollTo (plugin do jquery)
thomson89
No to zrobiłem coś takiego. Taką funkcję...

  1. ocenWiersz() {
  2.  
  3. if(location.hash == '#navigatio'){
  4. var linkOcen = document.getElementById('ocen_wiersz');
  5. var linkDrukuj = document.getElementById('drukuj_wiersz');
  6. var srodek = document.getElementById('prawo');
  7. var hash = location.hash;
  8. while (hash.search('#') != -1)
  9. hash = hash.replace('#', '');
  10.  
  11. var formularz = '<div class="ncategory">OCENIASZ WIERSZ<span class="ctitle">'+hash+'</span></div><div class="ntext">Ocenianie wierszy jest narazie niemożliwe z powodów technicznych. Jeżeli tak bardzo zachwycił cię mój wiersz, po prostu opisz to w księdze gości...<br /><br /></div>';
  12.  
  13. linkOcen.innerHTML = '';
  14. linkDrukuj = '<a onClick="pokazWersjeDruk(4)" href="#">Wersja do druku</a>';
  15. srodek.innerHTML = formularz;
  16.  
  17. }
  18. }


I, gdy kliknę na link
  1. <a href="#navigatio" onclick="ocenWiersz()">Ocen</a>


Funkcja nie działa...

Dlaczego?
paw-e-l
zacznijmy od tego że przed ocenWiersz() powinno być function winksmiley.jpg

// literówka
thomson89
przepraszam za błąd...

już jest function, ale to niczego nie zmieniło...
paw-e-l
sprawdzanie czy w adresie dokumentu jest hash masz wykonać w document.ready i jeśli tak to wywołujesz ocenWiersz() w którym już nie masz sprawdzać adresu dokumentu tylko wykonać to co ma się wykonać po kliknięciu w link
  1. <a href="java script:ocenWiersz()">Ocen</a>
(między java i script nie ma być spacji, tagi się na mnie uwzięły i wstawiają mi tam spacje tongue.gif)

z kolei na innych stronach niż ta na której znajduje się skrypt

  1. <a href="skrypt.php#navigatio">Ocen</a>
thomson89
Dziękuję. Wszystko jak najbardziej działa...
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.