Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JS] Przechwycenie zdarzenia history.back()
sniezny_wilk
post
Post #1





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Witam,

mam taki nietypowy problem, muszę uzyskać efekt identyczny jak tu tyle, że w samym JS :/ Ktoś ma pomysł jak mogę to zrobić ?


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.did">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl-PL" lang="pl-PL">
  3. <head>
  4. <script type="text/javascript">
  5. function qwerty(text){
  6. document.getElementById('qqq').innerHTML += 'Clicked: ' + text;
  7. }
  8. </head>
  9. <body>
  10. <input type="button" value="1" onclick="qwerty(this.value)" />
  11. <input type="button" value="2" onclick="qwerty(this.value)" />
  12. <input type="button" value="3" onclick="qwerty(this.value)" />
  13. <textarea id="qqq"></textarea>
  14. </body>
  15. </html>
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #3





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


Cytat(Crozin @ 19.05.2008, 17:33:10 ) *
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.did">
  2. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl-PL" lang="pl-PL">
  3. <head>
  4. <script type="text/javascript">
  5. function qwerty(text){
  6. document.getElementById('qqq').innerHTML += 'Clicked: ' + text;
  7. }
  8. </head>
  9. <body>
  10. <input type="button" value="1" onclick="qwerty(this.value)" />
  11. <input type="button" value="2" onclick="qwerty(this.value)" />
  12. <input type="button" value="3" onclick="qwerty(this.value)" />
  13. <textarea id="qqq"></textarea>
  14. </body>
  15. </html>


Heheh, no dzięki Crozin za odpowiedź, ale sądzisz, że aż tak ze mną źle winksmiley.jpg Poza tym chyba nie przeczytałeś ani tego co napisałem w temacie ani tego co jest na stronie z przykładem smile.gif No ale może to rzeczywiście nie jasno sformułowałem.

Chodzi mi o to, abym mógł przechwycić eventa i np wyrzucić alert, jeśli użytkownik kliknie wstecz lub dalej w przeglądarce z wykorzystaniem do tego kotwic (#nazwa_jakas), oraz JS. Ktoś ma jakiś pomysł ?


--------------------
Go to the top of the page
+Quote Post
Crozin
post
Post #4





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Ops... mój błąd winksmiley.jpg Niestety JS znam zbyt słabo, a pora jest zbyt późna na poszukiwania. Więc pomóc nie mogę.
Go to the top of the page
+Quote Post
NoiseMc
post
Post #5





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Nie testowalem ale w googlach mowia ze przechwytujesz "onbeforeunload"
http://www.google.com/search?q=javascript+back+button+event

Edit:
Chyba zartowalem z tym onbeforeunload ... poszukalem dalej i znalazlem takiego tutka fajnego:
http://dev2dev.bea.com/pub/a/2006/01/ajax-...ton.html?page=2

na podstawie ktorego zmajstrowalem na szybko cos takiego:
  1. <script type="text/javascript">
  2.  
  3. var i = 0;
  4. var lastHash = null;
  5.  
  6. function addHistoryStep ()
  7. {
  8. i++;
  9.  
  10. document.getElementById ('test').innerHTML = i;
  11. window.location.hash = i;
  12. lastHash = window.location.hash;
  13.  
  14. return false;
  15. }
  16.  
  17. function setHashObserver ()
  18. {
  19. window.setInterval ("observeHash()", 1);
  20. }
  21.  
  22. function observeHash ()
  23. {
  24. if (window.location.hash != lastHash)
  25. {
  26. var hash = window.location.hash;
  27.  
  28. i = hash.replace ('#', '');
  29.  
  30. document.getElementById ('test').innerHTML = i;
  31. lastHash = window.location.hash;
  32. }
  33. }
  34.  
  35. </head>
  36.  
  37. <body onload="setHashObserver()">
  38. <a href="." onclick="return addHistoryStep();">jeden</a>
  39. <a href="." onclick="return addHistoryStep();">dwa</a>
  40.  
  41. <div id="test"></div>
  42. </body>
  43. </html>


Nie podoba mi sie setInterval ale wlasciwie to ... event listenery pewnie tez dzialaja na podobnej zasadzie winksmiley.jpg

Mysle ze moze sie przydac

Ten post edytował NoiseMc 20.05.2008, 05:53:16


--------------------
Go to the top of the page
+Quote Post
sniezny_wilk
post
Post #6





Grupa: Zarejestrowani
Postów: 732
Pomógł: 80
Dołączył: 25.05.2005
Skąd: Szczecin

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


No ten onbeforeunload to działa po opuszczeniu przeglądarki. A co do tego JS'a na intervale to nie sądziłem, że będzie w sumie, aż tak sprawnie działać. Tak czy inaczej przykład mi się podoba, a za gotowca to już w ogóle wielkie dzięki smile.gif Sądzę, że zastosuje te rozwiązanie.

EDIT: Pytanie tylko dlaczego to nie działa w IE6 :/ ?

Ten post edytował sniezny_wilk 20.05.2008, 10:11:19


--------------------
Go to the top of the page
+Quote Post
NoiseMc
post
Post #7





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

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


Przejrzyj jeszcze to:
http://www.google.com/search?client=safari...-8&oe=UTF-8


--------------------
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 Aktualny czas: 22.08.2025 - 06:10