Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP?][JavaScript][HTML] Wykonywanie funkcji, "przyszłej" z innej strony.
thomson89
post 6.10.2009, 20:01:42
Post #1





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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!


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
paw-e-l
post 6.10.2009, 20:12:44
Post #2





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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

Ten post edytował paw-e-l 6.10.2009, 20:26:27
Go to the top of the page
+Quote Post
thomson89
post 7.10.2009, 06:21:02
Post #3





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


a mam jeszcze pytanie, czy można stosować dwa takie hashe?

  1. <a href="tresc.php#gora#omnie">Kliknij</a>


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
paw-e-l
post 7.10.2009, 10:12:21
Post #4





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


chyba można. najlepiej sprawdź w praktyce.
Go to the top of the page
+Quote Post
vokiel
post 7.10.2009, 10:34:19
Post #5





Grupa: Zarejestrowani
Postów: 2 592
Pomógł: 445
Dołączył: 12.03.2007

Ostrzeżenie: (0%)
-----


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ę?


--------------------
Go to the top of the page
+Quote Post
paw-e-l
post 7.10.2009, 10:58:49
Post #6





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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)
Go to the top of the page
+Quote Post
thomson89
post 7.10.2009, 21:37:27
Post #7





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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?


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
paw-e-l
post 7.10.2009, 23:03:44
Post #8





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


zacznijmy od tego że przed ocenWiersz() powinno być function winksmiley.jpg

// literówka

Ten post edytował paw-e-l 8.10.2009, 11:28:10
Go to the top of the page
+Quote Post
thomson89
post 8.10.2009, 09:36:21
Post #9





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


przepraszam za błąd...

już jest function, ale to niczego nie zmieniło...


--------------------
Sklep 70%
Go to the top of the page
+Quote Post
paw-e-l
post 8.10.2009, 11:51:07
Post #10





Grupa: Zarejestrowani
Postów: 115
Pomógł: 23
Dołączył: 27.06.2009
Skąd: Jaworzno

Ostrzeżenie: (0%)
-----


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>


Ten post edytował paw-e-l 8.10.2009, 11:52:46
Go to the top of the page
+Quote Post
thomson89
post 8.10.2009, 17:50:43
Post #11





Grupa: Zarejestrowani
Postów: 1 178
Pomógł: 51
Dołączył: 7.01.2009
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Dziękuję. Wszystko jak najbardziej działa...


--------------------
Sklep 70%
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 03:28