Steffen: Wechsel von www.example.com#foo nach www.example.com abfangen

Hallo,

nehmen wir an, im Browser ist die url "www.example.com/foo.php?dings=bums" geladen.
Ein link führt uns zu "www.example.com/foo.php?dings=bums#foo".
Nun betätigt der user den Browser Back button und gelangt zurück zu "www.example.com/foo.php?dings=bums".

Wie kann man genau bei diesem zurück gehen (wechsel von "...dings=bums#fo"o nach" ...dings=bums") einen event auslösen?

Ich habe es schon mit window.onbeforeunload versucht. Der feuert aber in diesem Fall nicht.

Gruß

Steffen

  1. Hi,

    Wie kann man genau bei diesem zurück gehen (wechsel von "...dings=bums#fo"o nach" ...dings=bums") einen event auslösen?

    wahrscheinlich gar nicht, denn das ist ja genaugenommen überhaupt kein Wechsel, sondern nur ein Springen innerhalb des geladenen Dokuments, gleichbedeutend mit Scrollen zu einer anderen Stelle.

    Ich habe es schon mit window.onbeforeunload versucht. Der feuert aber in diesem Fall nicht.

    Klar. Die Seite wird ja nicht verlassen. Möglicherweise spricht onscroll darauf an. Das wäre dann aber nicht spezifisch für diesen Fall, sondern für jegliches Scrollen im Dokument.

    Aber was willst du damit *eigentlich* erreichen?

    Ciao,
     Martin

    --
    Nein, es ist nicht wahr, dass bei der Post Beamte schneller befördert werden als Pakete.
    Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
    1. Hi,

      wahrscheinlich gar nicht, denn das ist ja genaugenommen überhaupt kein Wechsel, sondern nur > Aber was willst du damit *eigentlich* erreichen?

      Es geht um das hier.
      Ich habe einen neuen Thread aufgemacht, weil diese Problem hier nur indirekt mit dem im alten Thread zusammen hängt.

      Ich habe es jetzt so realisiert:

      Wenn ich das vergrößerte Bild mit ThickBox (oder Lightbox) einblende, mache ich ein window.location = "#zoom";.

      Mit ~~~javascript <script type="text/javascript">
      $(window).bind("hashchange", function() {
      closeTb();
      });
      </script>

      überwache ich dann den #-Wert. Wenn er sich ändert prüfe ich nochmal mit  
        
        
      ~~~javascript
      	if(location.hash.search(/zoom/) == -1){  
      		tb_remove();  
      	}  
      
      

      tb_remove(); macht dann meine ThickBox zu.

      Soweit ich jetzt getestet habe, funtioniert das jetzt so, wie es die user erwarten:

      Bei Browser back im geöffneter ThickBox geht nur die Thickbox zu, man bleibt aber auf der Seite (weil die Historie beim öffnen der Thickbox zusätzlich location#zomm geladen wurde).

      Sieht jemand Probleme mit dieser Lösung?

      Gruß

      Steffen

  2. Hallo,

    Hi.

    Wie kann man genau bei diesem zurück gehen (wechsel von "...dings=bums#fo"o nach" ...dings=bums") einen event auslösen?

    $(window).on('hashchange', function() {  
      .. work ..  
    });
    

    Hilft dir das?
    /entropie

    --
    Whenever people agree with me I always feel I must be wrong.
      -- Oscar Wilde
    1. $(window).on('hashchange', function() {

      .. work ..
      });

      
      > Hilft dir das?  
        
      Ja. Danke!