Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JS] Przechwycenie zdarzenia history.back()
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
sniezny_wilk
Witam,

mam taki nietypowy problem, muszę uzyskać efekt identyczny jak tu tyle, że w samym JS :/ Ktoś ma pomysł jak mogę to zrobić ?
Crozin
  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>
sniezny_wilk
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ł ?
Crozin
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ę.
NoiseMc
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
sniezny_wilk
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 :/ ?
NoiseMc
Przejrzyj jeszcze to:
http://www.google.com/search?client=safari...-8&oe=UTF-8
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.